1

これは私のjsフィドルリンクです:http: //jsfiddle.net/m4tyC/

複数の選択タグがあり、たとえば送信時に検証したい

少なくとも最初のグループでsize1とcolor1とQty1のいずれかが選択され、1つが選択されている場合は他のグループを検証したいと同時に、少なくとも1つのグループが選択されている場合はフォームを送信でき、ユーザーが1つを選択した場合2番目のグループのオプション私はsize2、color2、..の2番目のグループに対して同じ検証タイプを実行します。

私はそれに関する助けに感謝します、私は私のプロジェクトでjqueryを使用します

4

2 に答える 2

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!");
        });
});

</ p>

このjsFiddleを参照してください。いくつかのバグもありますが、それを解決することができます。

于 2012-06-25T19:00:47.140 に答える
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');       
    });
});​

デモ。

于 2012-06-25T20:01:31.293 に答える