1

まず、1 つの選択ボックス、1 つの入力ボックス、および 4 つのチェックボックスを含む行を生成する追加ボタンがあります。これを追加する制限は、最大で 1 ~ 10 行です。たとえばhttp://formvalidation.io/またはスタンドアロンの jquery コードを使用して jquery 検証を行う方法がわかりません。適用したいルール:

選択した役割がユーザー (管理者ではない) の場合、少なくとも 1 つのチェックボックスがオンになっていて、ユーザーが選択肢に 2 回表示されていないことを検証する必要があります。

どこから始めればいいのかわからないのですが、何かヒントを教えてもらえますか?

実際の例 :: http://jsfiddle.net/Yy2gB/131/

メソッド onClick を追加

$(document).ready(function(){
    var obj = {"1":"Admin istrator","2":"User2"};

    //$('.selectpicker').selectpicker();
    $(".addCF").click(function(){

        count = $('#customFields tr').length + 1;
        var sel = $('<select name="user'+count+'">');

        for(key in obj){
            // The key is key
            // The value is obj[key]
            sel.append($("<option>").attr('value',key).text(obj[key]));
        }

        $('.selectpicker').selectpicker();
        $("#customFields").append('<tr><td>'+sel[0].outerHTML
        +'</td><td><input class="form-control" class="valid_role"'
        +' data-fv-field="emails" type="text" name="role'+count
        +'" /></td><td><input type="checkbox" class="mycheckbox"'
        +' name="can_edit'+count+'"></td><td><input type="checkbox" '
        +'class="mycheckbox" name="can_read'+count+'"></td><td><input '
        +'type="checkbox" class="mycheckbox" name="can_execute'+count+'">'
        +'</td><td><input type="checkbox" class="mycheckbox" '
        +'name="is_admin'+count+'"></td><td><a href="javascript:void(0);"'
        +'class="remCF">Remove</a></td></tr>');
        $('.mycheckbox').iCheck({
            checkboxClass: 'icheckbox_square-blue',
            radioClass: 'iradio_square-blue'
        });
        $('.selectpicker').selectpicker();
    });
    $("#customFields").on('click','.remCF',function(){
    $(this).parent().parent().remove();
    });
});

HTMLフォーム

<div class="col-md-12 col-lg-12"> 
  <table class="table table-user-information" id="customFields">
    <thead>
      <tr>
        <th class="standardTable_Header">User</th>
        <th class="standardTable_Header">Role</th>
        <th class="standardTable_Header">
          <span title="administrator projektu">Can read</span>
        </th>
        <th class="standardTable_Header">
           <span title="uprawnienie do edycji danych projektu">
             edit
           </span>
        </th>
        <th class="standardTable_Header">
          <span title="uprawnienie do odczytu danych projektu oraz przypisanych do niego zadań">
           excute
          </span>
        </th>
        <th class="standardTable_Header">
          <span title="uprawnienie do edycji danych projektu">
            admin
          </span>
         </th>
      </tr>
    </thead>
  <tbody>
    <button type="button" class="btn btn-default addCF">
      Append
    </button>
    </div>
  </tbody>
</table>
4

1 に答える 1

0

このjQuery Validation Pluginを使用し、このデモを通じて、次のことを行うことができます:
仮定select: ロールのチェック ボックスは、タグに値1 がある場合にのみ、少なくとも 1 つのチェック ボックスがオンになっている必要があります。送信ボタンをUser2 持つタグでテーブルをラップします。 form:

<div class="col-md-12 col-lg-12">
    <form id="myform">
        <table class="table table-user-information" id="customFields">
            ...
        </table>
        <input type="submit" value="submit" />
    </form>
</div>

2- チェックボックスの html を編集して、すべて同じ名前で値が異なるようにする必要があります。次に例を示します。

<input type="checkbox" class="mycheckbox" name="ourRoles" value="can_edit' ...>
<input type="checkbox" class="mycheckbox" name="ourRoles" value="can_read' ...>

等々。

3- 次のスクリプトを追加します。

// just for the demos, avoids form submit
    jQuery.validator.setDefaults({
        debug: true,
        success: "valid"
    });
    $("#myform").validate({
        rules: {
            ourRoles: {
                required: function () {
                    if ($("select[name=user2]").val() == 2) {
                        return true;
                    } else {
                        return false;
                    }
                }
            }
        }
    }); 

このフィドルと一緒にすべてを見る

于 2015-08-12T13:37:13.003 に答える