2011-07-16 16 views
0

テキストフィールドを表示/非表示にする際に問題があります。ここでの例です:選択した値が1に等しく、他のすべてのために非表示にするときjqueryの表示/非表示フィールド

JFiddle Example

私が欲しいのは唯一のショーへのテキストフィールドのためです。チェックボックス部分が正しく機能しています。

jsfiddleからコピーしたコード:

<html> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<title>Test Page</title> 
<body> 
    <table id="testList"> 
    <tbody> 
     <tr> 
     <td><input type='checkbox'></td> 

     <td><select> 
    <option value="0">Volvo</option> 
    <option value="1">Saab</option> 
    <option value="2">Mercedes</option> 
    <option value="3">Audi</option><input type='text' style="display: none"> 
      </select> 
</td> 
     </tr> 
     <tr> 

     <td><input type='checkbox'></td> 
<td><select> 
    <option value="0">Volvo</option> 
    <option value="1">Saab</option> 
    <option value="2">Mercedes</option> 
    <option value="3">Audi</option> 
</select><input type='text' style="display: none"> 
     </td> 
     </tr> 
     <tr> 
     <td><input type='checkbox'></td> 
<td><select> 
    <option value="0">Volvo</option> 
    <option value="1">Saab</option> 
    <option value="2">Mercedes</option> 
    <option value="3">Audi</option> 
    </select> <input type='text' style="display: none"> 
</td> 
     </tr> 
    </tbody> 
    </table> 
<script> 
jQuery(function($) { 


     $("select").change(function() { 
     var $this = $(this), 
      $checkbox = $this.parent().prev().find(":checkbox"); 

     if ($this.val() != 0) { 
     $checkbox.attr("disabled", true); 
      if($this.val() == 1){ 
      $(":text").show(); 
      } 
      else{ 
       $(":text").hide(); 
      }  


     } else { 
      $checkbox.removeAttr("disabled"); 
     } 

      }); 

     $(":checkbox").change(function() { 
     var $this = $(this), 
      $select = $this.parent().next().find("select"); 

     if ($this.is(":checked")) { 
      $select.attr("disabled", true); 
     } else { 
      $select.removeAttr("disabled"); 
     } 
     }); 

    }); 
</script>  
</body> 
</html> 

答えて

2

http://jsfiddle.net/vsYB8/20/

の代わりにあなたが$(this).siblings(':text').show()が必要$(':text').show()を使用。

これは、対応するテキストボックスを選択し、それらのすべてではありません。

+0

値が0のときにテキストフィールドも非表示にするにはどうすればよいですか? – billy

関連する問題