jQuery对话框:如何防止关闭对话框+额外的get请求
jQuery dialog: how to prevent closing the dialog + an extra get request!
工作流程:用户单击该按钮,将打开一个带有搜索表单的对话框。ajax post请求被发送到服务器,并获得json响应。我在成功处理程序上得到回调。现在有两个问题。
-
对话框在成功回调(successFn)时关闭。我在成功回调中获得json响应,我希望用户看到结果并按下关闭按钮以终止对话框,
- 在对话框关闭后不久,一个get请求被发送到服务器。关闭对话框后,url类似于http://localhost:8080/search?query=。我没有显式地发送任何GET请求
$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
});
});
将method="post"
添加到表单中以避免意外发送GET数据是一个好主意。
添加返回false;成功函数可以阻止对话框关闭。如果可以的话,我将测试一下。
编辑:也检查你所有的代码是在jQuery(document).ready( function(){
希望有帮助!
我认为你只需要添加return false
。
"Submit Form": function() { $('form#myform').submit(); return false;},
相关文章:
- 着色引导框对话框
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- CKeditor:更改对话框中的默认选择选项
- 搜索api在mac上显示对话框
- 使用密码对话框Javascript请求帮助
- CKEditor v4:自制插件中对话框的动态标题
- 删除确认对话框在第一次单击时不起作用
- 使用jquery对话框中的箭头键
- 获取打开jquery对话框的button的id
- 是否可以用JavaScript显示等效的文件夹对话框
- 我怎么能让jQuery对话框表现得像Javascript警报
- 如何在页面重新加载时显示jquery ui对话框
- 打开相对于鼠标位置的CSS3/HTML5模式对话框
- javascript确认对话框有时会不断出现
- 如何为javascript方法放入jquery确认对话框
- Jquery UI对话框不会消失
- 如何从自定义对话框编辑数据网格中的选定行
- 如何在通过$.get接收内容的对话框中执行Jquery代码
- 通过windows.location上的GET传递数据到对话框
- jQuery对话框:如何防止关闭对话框+额外的get请求