0

2行の単純なテーブルがあります。最初の列は必須ですが、他の列は必須ではありません。ただし、ペアで必要となるようにしたいと思います。したがって、ユーザーがQuantity3の値を入力した場合、Size3も必要になります。

フィドルとして:http://jsfiddle.net/NaRts/7/

<tr>
    <td><input name="qty1[492]" class="qty required" type="text"></td>
    <td><input name="qty2[492]" class="qty" type="text"></td>
    <td><input name="qty3[492]" class="qty" type="text"></td>
</tr><tr>
    <td><input name="size1[492]" type="text" class="size required" ></td>
    <td><input name="size2[492]" type="text" class="size" ></td>
    <td><input name="size3[492]" type="text" class="size" ></td>
</tr>

そして、私が持っている単純なjQueryは次のとおりです。

$('.qty').keyup(function() {
    var s       = $(this).attr('name');            // = qty3[418]
    var qtyID   = s.replace(/[^1-9\[\]]/g, "");    // = 3[418] 
    var SizeID  = "size" + qtyID;

    var $sizeInput = $(this).closest('tr').next().find(SizeID);
    $sizeInput.css('background-color', 'green');
    $sizeInput.addClass('required'); 

   //I tried this too but it didn't work 
   //$(this).parent().find(SizeID).addClass('required');                


});​

どんな助けでも大歓迎です。

4

1 に答える 1

1

編集: .eachを削除しました

これを試して:

$(document).ready(function(){
      $('.qty').keypress(function(){
      var s       = $(this).attr('name');
      var qtyID   = s.replace(/[^1-9\[\]]/g, "");  
      var sizeID  = "size" + qtyID;
      var sizeInput = $("input[name='" + sizeID + "']");    
      $(sizeInput).css('background-color', 'green');
      $(sizeInput).addClass('required');
    });  
});
于 2012-06-26T15:27:11.500 に答える