【发布时间】:2013-02-05 18:57:27
【问题描述】:
我想在每个带有“确认”类的表单上使用 jQuery 和厚框制作一个模态确认窗口。
这是 HTML 标记:
<!-- The form below -->
<form id="myform" class="confirm" name="actionform" action="target.php">
<table>
<tr>
<td><input type="text" value="" placeholder="id" name="id" id="id"/></td>
<td><input type="text" value="" placeholder="title" name="title" id="title"/></td>
<td><input type="submit" value="Form elküldése"/></td>
</tr>
</table>
</form>
<!-- The modal box and it's content below, called with tb_show() function -->
<div id="myModalConfirm" style="display:none">
<div>
<p>Are you sure?</p>
<button id="yes">Yes, I'm sure</button><button id="cancel">No, cancel it</button>
</div>
</div>
那么问题来了:
模态对话框显示并且工作正常,取消按钮工作但单击按钮#yes 不会提交表单,我认为这是因为 preventDefault() 函数。
这是 jQuery(我使用 jquery.1.8.3 库,所以请注意兼容性)
$(document).ready(function(){
$('form.confirm').submit(function(e){
var form = $(this);
e.preventDefault();
tb_show("Megerősítés","#TB_inline?height=100&width=200&inlineId=myModalConfirm&modal=true",null);
$('button#yes').click(function(){
$(form).submit;
});
$('button#cancel').click(function(){
tb_remove();
return false;
});
})
});
=======|解决方法|================================================ =============== 这是给我的,但请在 cmets 中查看以下其他商品:)
$('form.confirm').submit(function(e, submit){
if (!submit) e.preventDefault();
tb_show("Megerősítés","#TB_inline?height=100&width=200&inlineId=myModalConfirm&modal=true",null);
})
$('#yes').click(function(){
$('form.confirm').trigger('submit', [true]);
});
$('#cancel').click(function(){
tb_remove();
});
【问题讨论】:
-
你试过
return true;吗? -
是的,还有一堆变体的回报
标签: jquery forms submit preventdefault confirmation