Jquery + form:如果val为null则不进行验证

时间:2011-09-06 09:00:57

标签: javascript jquery validation

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

这是我的功能。

$("#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>

请问我有什么问题?感谢您的协助。

2 个答案:

答案 0 :(得分:2)

我猜您的表单已提交,因为您的某个选项具有有效值且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();
}

答案 1 :(得分:0)

有一个三元组可能是开始的东西......