Jquery + form:如果val为空则不验证

Jquery + form : no validation if val is null

本文关键字:验证 val form 如果 Jquery      更新时间:2023-09-26

我的表单由链式选择组成。当我最终到达时,我提交它,当且仅当所有的选择都被填满。

这是我的功能。

$("#form_maps select").each(function(index, el){
                    var val = $(el).val();
                    if(val === null) 
                    {
                        alert('error message');
                        return false;
                    }
                    else 
                    {
                        $('#form_maps').submit();
                    }
                });

当我进行测试时,会生成一个错误(警报),但几秒钟后(我会说2或3),表单仍然提交。

这是我的HTML表单

<form id="form_maps" method="post" style="height: 100px;">

    <select name="select_0" id="select_0">

                                    <option value="c_5" class="c_4">Excavateur</option>

                                    <option value="c_11" class="c_4">Compaction</option>
    </select>

    <select name="select_1" id="select_1">

                                    <option value="c_6" class="c_5">série 100</option>
                                    <option value="c_9" class="c_5">série 200</option>
    </select>

    <select name="select_2" id="select_2">

                                    <option value="c_7" class="c_6">above</option>
                                    <option value="c_10" class="c_6">thru</option>
    </select>

    <select name="select_3" id="select_3">

                                    <option value="c_8" class="c_7">système hydraulique</option>
                                    <option value="c_12" class="c_7">système électrique</option>
    </select>

</form>
请问我的问题是什么?感谢您的协助。

我猜你的表单是提交的,因为你的选择之一有一个有效值和return false没有停止循环。如果你想防止提交到表单,除非所有的选择都有一个有效值,那么我建议使用一个布尔值,如果其中一个选择是无效的,将被设置为false。

像这样:

var canSubmit = true;
$("#form_maps select").each(function(index, el){
    var val = $(el).val();
    if(val === null) 
    {
        alert('error message');
        canSubmit = false;
    }
});
if(canSubmit) {
    $('#form_maps').submit();
}

有一个三元组所以可以从…