如何解决jQuery对话框:如何防止关闭对话框+额外的get请求!
| 工作流程: 用户单击该按钮,将打开一个带有搜索表单的对话框。一个ajax发布请求被发送到服务器,并得到一个json响应。我得到成功处理程序的回调。现在有两个问题。 对话框在成功回调(successFn)时关闭。我在成功回调中得到json响应,我希望用户看到结果并按关闭按钮以终止对话框。 对话框关闭后不久,将获取请求发送到服务器。单独关闭对话框后,URL类似于http:// localhost:8080 / search?query =。我没有明确发送任何GET请求 jQuery(document).ready(function(){ jQuery(\“#myButton \”)。click(showDialog); $myWindow = jQuery(\'#myDiv\');
$myWindow.dialog({ width: 400,autoOpen:false,title:\'Hello World\',overlay: { opacity: 0.5,background: \'black\'},modal: true,/*open: function (type,data) {
// include modal into form
$(this).parent().appendTo($(\"form:first\"));
},*/
buttons: {
\"Submit Form\": function() { $(\'form#myform\').submit();},\"Cancel\": function() {$(this).dialog(\"close\");}
}
});
});
var showDialog = function() {
$myWindow.show();
$myWindow.dialog(\"open\");
}
var closeDialog = function() {
$myWindow.dialog(\"close\");
}
var successFn = function (response) {
var obj = JSON.parse(response);
$(\"#result\").html(\'\').html(obj.name);
}
var errorFn = function (xhr,ajaxOptions,thrownError){
$(\"#myform\").parent().html(\'\').html(xhr.statusText);
}
var query = $(\"input#query\").val();
var dataString = \'query=\'+ query ;
$(\'form#myform\').submit(function(){
$.ajax({
type: \'post\',dataType: \'json\',url: \'/search\',async: false,data: $(\"#myform\").serialize(),success: successFn,error: errorFn
});
});
解决方法
最好在表单中添加“ 1”,以避免发送任何意外的GET数据。
添加return false;成功功能按钮可能会阻止对话框关闭。如果可以的话,我会测试一下。
编辑:还要检查所有代码是否都在ѭ2内
希望有帮助!
,我想您只需要加
return false
。
\"Submit Form\": function() { $(\'form#myform\').submit(); return false;},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。