如何使jQuery ui对话框暂停浏览器处理,如警报或确认框?

时间:2011-10-18 08:35:16

标签: javascript jquery jquery-ui jquery-ui-dialog

当提交我的某个表单时,用户可能会被重定向到两个页面中的任何一个,具体取决于输入到表单某个字段的值。重定向由用户自行决定,因此我使用确认框。如果用户按下“确定”,他们会得到一页,如果他们按“取消”,他们就会得到另一页。不幸的是,在我的情况下,“是”和“否”按钮比“确定”和“取消”更有意义。我在jQuery的ui库中使用dialog创建了一个新框,其中包含“是”和“否”按钮,并在表单提交时调用它:

$("#myForm").submit(function() {.....

问题是它只是在屏幕上闪烁,并没有给用户足够的时间做出选择,这与confirm框不同,后者阻止表单提交直到用户做出选择。

有没有办法让dialog框暂停表单提交方式与confirm框一样?我可以想到一些解决方法,但都要求我停止使用$("#myForm").submit(function() {.....

2 个答案:

答案 0 :(得分:0)

如何用普通按钮type="button"替换提交​​按钮,并在对话后手动发送表单。

答案 1 :(得分:0)

PiTheNumber提出了一个很好的观点,您可能希望在对话后发送表单。我认为它在没有给用户机会的情况下闪烁对话框的原因是dialog()方法是一个异步方法,所以提交在对话框启动时就已经开始了。

然后,对于以下内容:

如果要指定特定按钮,可以将按钮选项传递到对话框:

$( ".selector" ).dialog({ buttons: { "Ok": function() { $(this).dialog("close"); } } })

这样,您可以指定自己的按钮文本,功能等。

此外,您可以将对话框设置为模式对话框,以防止用户在对话框显示时在屏幕上执行任何其他操作:

$( ".selector" ).dialog({ modal: true });

顺便提一句,这些例子来自http://jqueryui.com/demos/dialog/。去那边检查一下。显然,您必须组合选项并将它们一起传递给dialog()。