2017-05-19 13 views
0

SELECTと入力が少ないフォームを構築しています。がに反応開始としてSELECTフィールド名を開始jQueryセレクタとして同じ名前のすべての要素を見つける

<div class="row"> 
    <div class="col-md-3"> 
     <div class="form-group mb-md"> 
      <input type="text" name="1[day]" class="form-control text-bold" value="Monday" readonly> 
     </div> 
    </div> 
    <div class="col-md-1"> 
     <div class="form-group"> 
      <select class="form-control input-md mb-md" name="1[open]"> 
       <option value="1" selected>Open</option> 
       <option value="0">Closed</option> 
      </select> 
     </div> 
    </div> 
    <!-- Working Hours --> 
    <div class="col-md-2"> 
     <div class="form-group"> 
      <input type="text" class="form-control time" name="1[start]" value="08:00"> 
     </div> 
    </div> 
    <div class="col-md-2"> 
     <div class="form-group"> 
      <input type="text" class="form-control time" name="1[end]" value="22:00"> 
     </div> 
    </div> 

    <!-- Booking Hours --> 
    <div class="col-md-2"> 
     <div class="form-group"> 
      <input type="text" class="form-control time" name="1[from]" value="08:00"> 
     </div> 
    </div> 
    <div class="col-md-2"> 
     <div class="form-group"> 
      <input type="text" class="form-control time" name="1[to]" value="22:00"> 
     </div> 
    </div> 
</div> 

私は同じ名前で時刻フィールドを作りたい。その一部は、この(のみ月曜日例えば.. 7日があるでしょう)のように見えますSELECT変更。値が0の場合、同じ名前のすべてのフィールドが開始属性を無効にします。

これまで私はこの機能を作っていましたが、変更されたフィールド名を判断するために熱心ではなく、それに応じて他のフィールドに対処しています。

$("select[name$='[open]']").change(function() { 
    if ($(this).val() == 0) { 
     // Should disable all input fields with same name as SELECT 
    } else if ($(this).val() == 1) { 
     // Should enable all input fields with same name as SELECT 
    } 
}); 

答えて

0

これが達成しようとしているのかどうかは不明です。

下記のコードを試してください。

$("select[name$='[open]']").change(function() { 
    var num = $(this).attr("name").replace("[open]",''); 
    var elems = $("input[name^='"+num+"']"); 
    if ($(this).val() == 0) { 
     // Should disable all input fields with same name as SELECT 
     elems.prop('disabled',true); 
    } else if ($(this).val() == 1) { 
     // Should enable all input fields with same name as SELECT 
     elems.prop('disabled',false); 
    } 
}); 

hereを確認してください。

+0

ありがとうございました。それはまさに私が必要としていたものです。素晴らしい+++++ – Octo

+0

あなたは大歓迎です!私はそれが助けてうれしいです:-) –

関連する問題