2017-01-25 22 views
0

私はラジオの動的フォームに取り組んでいます。チェックボックスは動的に追加されています。残念ながら、私は検証を追加しました。動的に作成されたチェックボックスに検証を追加するjQuery

を追加するには、チェックボックスに属性が必要ですか?ラジオやチェックボックスが

  • があるかもしれません質問の任意の数のANSWER1 []、ANSWER2 []、ANSWER3 []
  • ある

    <ol type="a"> 
        <li><input type="radio" name="answer0[]">A</li> 
        <li><input type="radio" name="answer0[]">A</li> 
        <li><input type="radio" name="answer0[]">A</li> 
    </ol> 
    <ol type="a"> 
        <li><input type="checkbox" name="answer1[]">A</li> 
        <li><input type="checkbox" name="answer1[]">A</li> 
        <li><input type="checkbox" name="answer1[]">A</li> 
    </ol> 
    
    1. 入力タイプが質問に依存したコードに続いて

    $('ol').each(function (i) { 
        $(this).find("input:first").prop("required", true); 
    }); 
    

    入力要素の名前が同じであるため、無線タイプは正常に動作します。しかしチェックボックスは最初の入力のみをチェックする必要がありました。

    $('ol').each(function (i) { 
        $("[name='answer"+i+"[]']").rules("add", {required:true}); 
    }); 
    

    第二

    しかし、それは

    は、少なくとも1つのチェックする必要がありますチェックボックスする検証を追加する方法

    未定義

    のプロパティ「設定」を読み取ることができませんエラー以下与えます。 ..

    +0

    あなたが検証のために使用されているどのようなプラグイン? – talkhabi

    +0

    jQueryの検証 –

    答えて

    1

    わかりました。このソリューションを試してみてください。

    var names = []; 
    var rules = {}; 
    
    $('ol [type="checkbox"], ol [type="radio"]').each(function(i,el){ 
        var name = $(el).attr('name'); 
        if(names.indexOf(name) == -1){ 
         rules[name] = { 
          required: true 
         }; 
         names.push(name); 
        } 
    }); 
    
    $("#myform").validate({ 
        rules: rules 
    }); 
    
    +0

    ありがとうございます。 –

    0

    お試しください

    $('ol').each(function (i) { 
        $(this).find("input[type='checkbox']").prop("required", true); 
    }); 
    

    私が直接「ルール」にダイナミックなロジックを追加したいがチェックチェックボックス

    $('ol').find('input[type="checkbox"]:checked').length 
    
    +1

    あなたのアプローチはすべてのチェックボックスをチェックする必要があります。 –

    +0

    OKをクリックすると、各olのチェックボックスのチェックボックスの長さを確認できます。編集された答えを確認してください –

    +0

    50の質問があるとします。私は、各質問のチェックボックスの長さを確認することをお勧めしません。 –

    0

    の長さをチェックしてみてください。 私は最近、1つのフォームに2つのデフォルト送信ボタンがある私自身の問題を解決しました。関数がそれを世話したので、ルールが追加されました。

    関連する問題