使用javascript验证多个选择组

时间:2012-06-25 18:07:24

标签: javascript jquery

这是我的js小提琴链接: http://jsfiddle.net/m4tyC/

我有多个选择标签,我想在提交时验证,例如

至少如果在第一组中选择了size1和color1和Qty1中的一个,并且如果选择了一个,我想验证其他组,并且如果选择了至少一个组,则表单可以提交,如果用户从第二组中选择了一个选项我对第二组size2,color2,...执行相同的验证类型。

我感谢任何帮助,我在我的项目中使用jquery

2 个答案:

答案 0 :(得分:1)

这是一些JQuery代码。您可以自己弄清楚如何提交表单:

$(document).ready(function(){
    $("form").submit(function(event)
    {
        var is_valid = true;// for avoiding alerting in loop
        event.preventDefault();
        $(this).find("select").each(function(){ //usually default is the first
            if(!$(this).attr("selected"))
            {
                $("#"+$(this).attr("id")).each(function()
                {
                    if($(this).find("option:first").attr("selected"))
                    {
                        is_valid = false;
                    }
                });                             
            }
        });
        if( !is_valid )
            alert("Please make sure all values are set for row!");
        });
});

jsFiddle。也有一些错误,但你可以解决这个问题。

答案 1 :(得分:1)

试试这个(只有在完全选择了至少一行时才会提交表单)

$(function(){
    $('#frm_productOrder').on('submit', function(e){ 
        e.preventDefault();
        var f=$(this);    
        var invalid=false, selected=0;
        $('.selects').each(function(){
        var row=$(this);
        var items=0;
        $('select', row).each(function(){
            var t=$(this);
            var selectedIndex=t.prop("selectedIndex");
            if(selectedIndex) items++;
        });
        if(items==3) selected++;
        if(items>0 && items<3) invalid=true;
        items=0;
        });
        if(selected>0 && !invalid) f[0].submit();
        else alert('Please fill up the form correctly');       
    });
});​

DEMO.