Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Javascript 提交表单时,检查一个值,如果该值存在,将弹出一个模式窗口以获取更多信息_Javascript_Jquery_Validation_Form Submit - Fatal编程技术网

Javascript 提交表单时,检查一个值,如果该值存在,将弹出一个模式窗口以获取更多信息

Javascript 提交表单时,检查一个值,如果该值存在,将弹出一个模式窗口以获取更多信息,javascript,jquery,validation,form-submit,Javascript,Jquery,Validation,Form Submit,我有一个使用jQuery验证的表单。单击Submit按钮,表单将通过ajax进行验证和提交。我想在此过程中添加一个步骤 我想检查是否存在一个值,比如x。如果x不在表格中,我想继续并提交它,因为我已经这样做了。如果是在表单中,我想打开一个模式窗口,请求进一步的信息,然后提交表单,并将额外的信息添加到请求中 目前,我可以得到模式触发,但表单只是继续提交当用户处理模式时,如何使表单提交暂停? jqueryvalidate有一个“success”选项,在成功验证之后调用(我想检查是否触发了模式),但仍然

我有一个使用jQuery验证的表单。单击Submit按钮,表单将通过ajax进行验证和提交。我想在此过程中添加一个步骤

我想检查是否存在一个值,比如x。如果x不在表格中,我想继续并提交它,因为我已经这样做了。如果是在表单中,我想打开一个模式窗口,请求进一步的信息,然后提交表单,并将额外的信息添加到请求中

目前,我可以得到模式触发,但表单只是继续提交当用户处理模式时,如何使表单提交暂停?

jqueryvalidate有一个“success”选项,在成功验证之后调用(我想检查是否触发了模式),但仍然不会暂停执行


简而言之:如何验证提交的表单,检查值x是否存在,如果不存在,则提交表单,但如果存在,则暂停提交,弹出一个模式窗口,让用户填写更多数据(并可能单击某种“完成”或“取消”按钮),将其添加到收集的表格数据中,然后提交批次?暂停提交部分让我感到困惑。

不能暂停表单提交,但如果在表单的onsubmit事件中返回false,则可以取消表单提交。从模式窗口获取附加数据后,只需将数据添加到表单并通过javascript重新提交即可。

您不能暂停表单提交,但如果表单的onsubmit事件返回false,则可以取消表单提交。从模式窗口获取附加数据后,只需将数据添加到表单中,然后通过javascript重新提交即可。

钩住表单的提交功能:

$('form').submit(function() {
   if (x !== undefined) {
       $('#dialog').show();
       return false;
   }
});

钩住表单的提交功能:

$('form').submit(function() {
   if (x !== undefined) {
       $('#dialog').show();
       return false;
   }
});
在第一个表单上使用
submit()

$('#form1').submit(function() {
    // The below validation goes in here
});
验证它

$("#form1").validate({
    // Whatever rules you want to validate by   
});
检查表格是否有效

if($('#form1').valid()) {
    // Branching on x, example below, will go in here
} else {
    // It's not valid, stop the submission
    return false;
}
x上的分支。如果存在,请打开模式,如果不存在,请返回true以按原样提交表单

if (x !== undefined) {
    // Here is where you also need to pass the other form data to the modal
    // append hidden text fields to the form and populate with the values 
    // Open your modal window, then stop the default submit process
    $('#themodalwindow').openModal();
    return false;
} else {
    // No x so submit the form as is
    return true;
}
现在您必须在模式中提交表格

$('#form2').submit(function() {
    return true;
});
如果您将表格1中收集的数据附加到表格2中,那么提交表格将包括您需要的所有内容。顺便说一句,您可以在其中缓存一些内容,但这是它的要点。

在第一个表单上使用
submit()

$('#form1').submit(function() {
    // The below validation goes in here
});
验证它

$("#form1").validate({
    // Whatever rules you want to validate by   
});
检查表格是否有效

if($('#form1').valid()) {
    // Branching on x, example below, will go in here
} else {
    // It's not valid, stop the submission
    return false;
}
x上的分支。如果存在,请打开模式,如果不存在,请返回true以按原样提交表单

if (x !== undefined) {
    // Here is where you also need to pass the other form data to the modal
    // append hidden text fields to the form and populate with the values 
    // Open your modal window, then stop the default submit process
    $('#themodalwindow').openModal();
    return false;
} else {
    // No x so submit the form as is
    return true;
}
现在您必须在模式中提交表格

$('#form2').submit(function() {
    return true;
});

如果您将表格1中收集的数据附加到表格2中,那么提交表格将包括您需要的所有内容。顺便说一句,您可以在其中缓存一些内容,但这是它的要点。

但是在返回false之后,如何提交表单数据以及在模式中输入的额外数据?打开模式并返回false后,我是否会丢失表单数据?您需要从表单中收集数据,并将其粘贴到您将在模式中使用的表单(您提到的“进一步信息”)中,否则您将丢失它,是的。当他们从对话框提交信息时,您可以钩住事件并在窗体上创建隐藏字段。给它一个ID/名称,当表单提交时,它将与其余的输入元素一起序列化。理想情况下,不必检查(x!==未定义),您应该检查(x!==未定义&&x.value!==''),这样您就可以填充该变量并重新提交表单,而不是创建新的隐藏字段。但是在返回false后,如何提交表单数据以及在模式中输入的额外数据?打开模式并返回false后,我是否会丢失表单数据?您需要从表单中收集数据,并将其粘贴到您将在模式中使用的表单(您提到的“进一步信息”)中,否则您将丢失它,是的。当他们从对话框提交信息时,您可以钩住事件并在窗体上创建隐藏字段。给它一个ID/名称,当表单提交时,它将与其余的输入元素一起序列化。理想情况下,与其检查(x!==未定义),不如检查(x!==未定义&&x.value!==''),这样您就可以填充该变量并重新提交表单,而不是创建新的隐藏字段。