Javascript 确认提交后如何提交表格?jQuery、AJAX
您好,我有一个简单的html页面,其中包含以下表单:Javascript 确认提交后如何提交表格?jQuery、AJAX,javascript,jquery,Javascript,Jquery,您好,我有一个简单的html页面,其中包含以下表单: <form:form method="post" action="details" modelAttribute="code"> <form:input path="code"/> <br/> <input type="submit" value="Submit" /> </form:form> 当我按下Submit按钮时,我需要使用jQueryAjax检查给定代
<form:form method="post" action="details" modelAttribute="code">
<form:input path="code"/>
<br/>
<input type="submit" value="Submit" />
</form:form>
当我按下Submit按钮时,我需要使用jQueryAjax检查给定代码的数据库中是否有一些记录。如果是,则弹出jQuery UI对话框,询问用户是否真的想显示记录详细信息(因为这是一项付费服务)。如果他确认我需要提交表格。这是我在html页面上的脚本:
$(document).ready(function() {
// Bind an event handler to the submit event
$('form#code').submit( function() {
// Check whether there are some records in the DB using AJAX
$.ajax({
url: 'getResultCount',
type: 'post',
dataType: 'html',
data: $("form#code").serialize(),
success: function(result) {
if(result == 'null') {
$('div#results').html('<p>No records found for ' + $('input#code').val() + '.</p>');
} else {
// At leat one record was found so ask the user
$('#dialog-confirm').dialog({
resizable: false,
draggable: false,
height: 240,
width: 450,
modal: true,
buttons: {
"Display details": function() {
// User confirmed, submit the form
$('form#code').submit();
},
Cancel: function() {
$(this).dialog("close");
}
}
});
}
}
});
return false;
});
});
$(文档).ready(函数(){
//将事件处理程序绑定到提交事件
$('form#code')。提交(函数(){
//使用AJAX检查数据库中是否有一些记录
$.ajax({
url:'getResultCount',
键入:“post”,
数据类型:“html”,
数据:$(“表单#代码”).serialize(),
成功:功能(结果){
如果(结果='null'){
$('div#results').html('未找到'+$('input#code').val()+'的记录。');
}否则{
//至少找到了一条记录,请询问用户
$(“#对话框确认”)。对话框({
可调整大小:false,
可拖动:错误,
身高:240,
宽度:450,
莫代尔:是的,
按钮:{
“显示详细信息”:函数(){
//用户确认后,提交表单
$('form#code')。提交();
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
}
}
});
返回false;
});
});
当我按下“显示详细信息”按钮时,什么也没有发生。我认为这是因为我正在输入返回false的同一个提交处理程序。如何解决此问题以执行表单提交?请告知。
先谢谢你。
Vojtech有一个简单的答案:不要使用
您可以改为使用
Submit
,其中handler()
是绑定到上述代码中表单的提交事件的函数。如果处理程序决定提交表单,只需以编程方式提交即可。编辑:它实际上已经存在于您的代码中。有一个简单的答案:不要使用
您可以改为使用
Submit
,其中handler()
是绑定到上述代码中表单的提交事件的函数。如果处理程序决定提交表单,只需以编程方式提交即可。编辑:它实际上已经存在于代码中。您需要等待.ajax
成功运行,因为它当前正在异步模式下运行
因此,请使用ajax
上的async
选项禁用它
专门为你回答
JS
$(document).ready(function () {
// Bind an event handler to the submit event
$('form#code').submit(function () {
// Check whether there are some records in the DB using AJAX
$.ajax({
url: 'getResultCount',
type: 'post',
dataType: 'html',
data: $("form#code").serialize(),
async: false,
success: function (result) {
if (result == 'null') {
$('div#results').html('<p>No records found for ' + $('input#code').val() + '.</p>');
//No Records found, submitting!!
return true;
} else {
// At leat one record was found so ask the user
$('#dialog-confirm').dialog({
resizable: false,
draggable: false,
height: 240,
width: 450,
modal: true,
buttons: {
"Display details": function () {
// User confirmed, submit the form
return true;
},
Cancel: function () {
//TODO: Don't think you need this line?
$(this).dialog("close");
//CANCEL!!!
return false;
}
}
});
//User skipped Dialog somehow...ignoring....DO NOT SUBMIT
return false;
}
}
});
});
});
$(文档).ready(函数(){
//将事件处理程序绑定到提交事件
$('form#code')。提交(函数(){
//使用AJAX检查数据库中是否有一些记录
$.ajax({
url:'getResultCount',
键入:“post”,
数据类型:“html”,
数据:$(“表单#代码”).serialize(),
async:false,
成功:功能(结果){
如果(结果='null'){
$('div#results').html('未找到'+$('input#code').val()+'的记录。');
//未找到任何记录,正在提交!!
返回true;
}否则{
//至少找到了一条记录,请询问用户
$(“#对话框确认”)。对话框({
可调整大小:false,
可拖动:错误,
身高:240,
宽度:450,
莫代尔:是的,
按钮:{
“显示详细信息”:函数(){
//用户确认后,提交表单
返回true;
},
取消:函数(){
//托多:你不认为你需要这条线吗?
$(此).dialog(“关闭”);
//取消!!!
返回false;
}
}
});
//用户以某种方式跳过了对话框…忽略…不提交
返回false;
}
}
});
});
});
注意:这将返回true和false以继续向服务器提交过程您需要等待.ajax
成功
,因为它当前正在异步
模式下运行
因此,请使用ajax
上的async
选项禁用它
专门为你回答
JS
$(document).ready(function () {
// Bind an event handler to the submit event
$('form#code').submit(function () {
// Check whether there are some records in the DB using AJAX
$.ajax({
url: 'getResultCount',
type: 'post',
dataType: 'html',
data: $("form#code").serialize(),
async: false,
success: function (result) {
if (result == 'null') {
$('div#results').html('<p>No records found for ' + $('input#code').val() + '.</p>');
//No Records found, submitting!!
return true;
} else {
// At leat one record was found so ask the user
$('#dialog-confirm').dialog({
resizable: false,
draggable: false,
height: 240,
width: 450,
modal: true,
buttons: {
"Display details": function () {
// User confirmed, submit the form
return true;
},
Cancel: function () {
//TODO: Don't think you need this line?
$(this).dialog("close");
//CANCEL!!!
return false;
}
}
});
//User skipped Dialog somehow...ignoring....DO NOT SUBMIT
return false;
}
}
});
});
});
$(文档).ready(函数(){
//将事件处理程序绑定到提交事件
$('form#code')。提交(函数(){
//使用AJAX检查数据库中是否有一些记录
$.ajax({
url:'getResultCount',
键入:“post”,
数据类型:“html”,
数据:$(“表单#代码”).serialize(),
async:false,
成功:功能(结果){
如果(结果='null'){
$('div#results').html('未找到'+$('input#code').val()+'的记录。');
//未找到任何记录,正在提交!!
返回true;
}否则{
//至少找到了一条记录,请询问用户
$(“#对话框确认”)。对话框({
可调整大小:false,
可拖动:错误,
身高:240,
宽度:450,
莫代尔:是的,
按钮:{
“显示详细信息”:函数(){
$('form#code')[0].submit();