Javascript 确认提交后如何提交表格?jQuery、AJAX

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检查给定代

您好,我有一个简单的html页面,其中包含以下表单:

<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();