2011-07-09 21 views
0

このチェックボックスをオンにしてもswitch()を使用しようとしていますが、動作しません。ここで私が把握できなかったプロンプトは何ですか? あなたはPLZを助けることができますか? は、ここで私はjQueryでチェックボックスをオンにするにはどうすればよいですか?

<input type="checkbox" class="che" value="1" />age 
<input type="checkbox" class="che" value="2" />sex 

$(".che").click(function(){ 


var chek= $(this).is(":checked") ; 
alert(chek); 
     switch(chek){ 
     case 1: 
     alert ('ok'); 
     $('.myTableRow').show(); 
     break; 
     case 2: 
     alert('hora'); 
      $(".myTableRow").hide(); 
     break; 
     } 
    }); 

答えて

1

chekがブール値で試したものです。 2(は0true1に相当)に決して等しくないので、case 2:に決して到達しません。

チェックボックスのを取得したい場合は、あなたがval()を呼び出す必要があります:

$(".che").change(function(){ 
    var chek= $(this).val(); 
    alert(chek); 
    switch(chek){ 
     case "1": 
      alert ('ok'); 
      $('.myTableRow').show(); 
     break; 
     case "2": 
      alert('hora'); 
      $(".myTableRow").hide(); 
     break; 
    } 
}); 

しかし、この設定は論理的ではないようです。両方のボックスが選択されている場合はどうなりますか?最後に選択したチェックボックスのアクションが常に実行されます。

はたぶん、あなただけの希望:

$(".che").change(function(){ 
    $('.myTableRow').toggle(this.checked); // or !this.checked 
}); 

これは本当に良くありませんが。

論理を実装する前にフォームがどのように機能するか考える必要があります。

参考: `.toggle(showOrHide)`のためchangetoggle

+0

+1。前にこれを見たことがない:) – naveen

関連する問題