我有<asp:Button name="theButton">
我使用jQuery处理点击。当按下按钮时,我会显示一个自定义的jQuery UI确认对话框。
我做了两次回调;一个用于“是” - 单击,一个用于“否”:
$('input[name="theButton"]').click(function(){
myPopUpMethod(function(){
//user pressed "yes" - perform postback
//(return true won't do anything here)
}, function(){
//user pressed "no" - don't postback
});
});
如果我使用标准confirm()
,我可以执行以下操作:
return confirm('are you sure?');
但是我如何在第一个例子中将“true”或“false”返回到“外部点击功能”?
答案 0 :(得分:1)
因为jQuery对话框没有阻塞线程,所以你的click函数总是会立即返回,所以你需要返回false;最后,无论对话结果如何,都不会发布表单。
我通常做的是检查按钮上是否存在数据属性,如果存在则允许表单提交,例如:
$('input[name="theButton"]').click(function(){
var $btn = $(this);
if($btn.data("dosubmit") == "true")) {
return true;
}
myPopUpMethod(function(){
$btn.data("dosubmit", "true").trigger("click");
}, function(){
// Do Nothing
});
return false;
});
第一次调用它时,将弹出jQuery UI对话框,该方法将阻止表单提交。用户在对话框中单击“是”后,将设置data-dosubmit属性并再次触发按钮单击。在此阶段,该方法会查看data-dosubmit属性并尝试提交表单。