Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery在提交之前打开对话框,等待按钮单击_Jquery_Submit_Modal Dialog - Fatal编程技术网

jquery在提交之前打开对话框,等待按钮单击

jquery在提交之前打开对话框,等待按钮单击,jquery,submit,modal-dialog,Jquery,Submit,Modal Dialog,我尝试将表单提交与jquery模态对话框一起使用。请看下面的代码 $(function() { var sendConfirmation = false; $( "#dialog-form" ).dialog({ autoOpen: false, height: 300, width: 350, modal: true, buttons: { "Send": function() { sendConfirmation = true; },

我尝试将表单提交与jquery模态对话框一起使用。请看下面的代码

$(function() {

var sendConfirmation = false;

$( "#dialog-form" ).dialog({
  autoOpen: false,
  height: 300,
  width: 350,
  modal: true,
  buttons: {
    "Send": function() {
        sendConfirmation = true;
    },
    "Close": function() {
        $(this).dialog("close");
    }
  }
});

$("#send").submit(function(event) {
    //If user click on modal dialog "Send", then submit should be trigger.
    //And if user click "Close"
    $(this).trigger("recaptcha");
    return false;
    /*if(sendConfirmation) {
        return true;
    } else {
        return false;
    }*/

});

$("#send").bind("recaptcha", function() {
        $( "#dialog-form" ).dialog( "open" );
        //return false;
    }); 
  });
如果用户单击“提交”按钮,对话框将打开,提交应等待,直到单击模式对话框上的“确定”按钮,然后执行提交。

其主要思想是,当用户点击提交按钮时,模态对话框将打开,模态对话框上是recaptcha。用户输入recaptcha代码并单击OK按钮,然后提交数据

JavaScript是单线程的,由于JavaScript用于显示对话框和处理对其的任何单击,因此如果不阻止UI,就无法阻止执行。尝试使用对话框按钮的回调函数

Good!!现在您的问题是什么?在单击“确定”按钮之前,如何停止提交流?如果用户点击模态对话框上的OK按钮,那么表单应该是submit。我想到的是,我想要的是一个关于submit的前后过滤器,比如rails过滤器。我通过定义boolean类型的变量来解决这个问题。开始时,变量设置为false。用户单击对话框上的“确定”按钮后,变量将设置为true,表单将被提交。在submit函数中,我验证变量是否为true,如果为true,则返回true,否则返回false。很好,您的问题得到了解决。