0

我有一个简单的两行表。第一列是必需的,但其他不是;但是,我希望它们成对被要求。因此,如果用户为 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 回答