Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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_Forms_Validation - Fatal编程技术网

Javascript 动态表单验证-在满足所有条件之前进行

Javascript 动态表单验证-在满足所有条件之前进行,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我已经创建了一个表单,我正在尝试为一组“双重”动态的选择字段添加验证,也就是说,根据用户输入,每个字段中可能有x个组和y个选择字段。每个选定字段都需要回答 我遇到的问题是,如果回答的选择字段少于现有的总数,则表单可以进入下一页-如果我没有回答任何选择字段,验证工作将非常完美,但即使回答了一个字段,我仍然会收到警报,但表单仍将进入下一步。下面是一个代码示例(“unchanged”是我给select中的占位符选项的值): 从概念上讲,我理解为什么会发生这种情况——条件至少被满足一次,并导致表单继续。

我已经创建了一个表单,我正在尝试为一组“双重”动态的选择字段添加验证,也就是说,根据用户输入,每个字段中可能有x个组和y个选择字段。每个选定字段都需要回答

我遇到的问题是,如果回答的选择字段少于现有的总数,则表单可以进入下一页-如果我没有回答任何选择字段,验证工作将非常完美,但即使回答了一个字段,我仍然会收到警报,但表单仍将进入下一步。下面是一个代码示例(“unchanged”是我给select中的占位符选项的值):

从概念上讲,我理解为什么会发生这种情况——条件至少被满足一次,并导致表单继续。对于具有固定字段数的表单,我会在需要验证的所有字段之间使用| |,但在这些情况下,这不会生效

也许我在这里的做法是完全错误的。。。基本上,我需要表单将其视为在每个.species\u select具有除“unchanged”之外的值之前无法继续


非常感谢您的想法和专业知识。

尝试以下方式使用a标志:

var proceed = true;
$(".species_select").each(function() {        
    if (this.value === "unchanged") {
    alert("Please select the species");
    proceed = false;
    }
});
if (proceed) {
    // PROCEED...
}

您需要使用
preventDefault()
取消表单提交:


啊,这也是一个很好的答案,尽管我应该说得很具体——这是表单提交之前的验证步骤。非常感谢。非常感谢。真漂亮。我在其他情况下使用过这种“标志”类型的解决方案,不知道为什么我在这里没有想到它。今天盯着电脑看太久了。
var proceed = true;
$(".species_select").each(function() {        
    if (this.value === "unchanged") {
    alert("Please select the species");
    proceed = false;
    }
});
if (proceed) {
    // PROCEED...
}
$( "#myformID" ).submit(function( e) {
    $(".species_select").each(function(){        
        if (this.value === "unchanged"){
            e.preventDefault();
            alert("Please select the species")
        }
        else{
          PROCEED...
       };  
});