2012-03-05 7 views
1

私はjquery mobileのfieldcontainにラップされたチェックボックスのidにmemberidをバインドするasp.netリピーターを持っています。jQueryを使用しているユーザーがチェックしたばかりのチェックボックスのIDを取得する方法は?

<div data-role="fieldcontain" style="margin: 0px"> 
    <fieldset data-role="controlgroup"> 
     <asp:Repeater ID="rpt" runat="server"> 
      <ItemTemplate> 
       <input type="checkbox" name="chkBox" 
        id="<%# DataBinder.Eval(Container.DataItem, "[MemberId]").ToString() %>" 
        class="custom" /><label for="<%# DataBinder.Eval(Container.DataItem, "[MemberId]").ToString() %>"><%# DataBinder.Eval(Container.DataItem, "[LastName]").ToString() %>, 
         <%# DataBinder.Eval(Container.DataItem, "[FirstName]").ToString() %></label>        
      </ItemTemplate> 
     </asp:Repeater> 
    </fieldset> 
</div> 

私はこのjQueryの機能を持っている:私はの結果としてだけクリックして、それがユーザによってオンまたはオフされているかどうかをされたチェックボックスのIDを取得するにはどうすればよい

$('input:checkbox[name=chkBox]').change(function() {    
      var id = $(this).attr('id'); 
      //var isChecked = $(this).attr('checked'); 
      var isChecked = $('#'+id).is(':checked');  
}); 

クリックアクション?現在のコードはすべてのチェックボックスをループします。私はchange()を使うので、何らかの理由でclick()は捕まえられません。要素にクリックイベント(または変更)をバインド

おかげで、

+0

あなたが持っているものは、idとisCheckedを引きます。何が問題ですか? – Malk

+0

問題はすべてのチェックボックスをループし、チェックされたすべてのチェックボックスをチェックします。どの人がクリックされたかはわかりません。 – imObjCSwifting

+0

私はまだフォローしていません。関数に 'alert( 'id =' + id);を置くと、ページ上のすべてのチェックボックスのidを警告していますか? – Malk

答えて

0

sigh、私はすべてのチェックボックスに同じ名前を付けました。なぜなら、すべてのチェックボックスが同じ名前を持っているからです。私はそれぞれのチェックボックスに異なる名前を付けました、それは今働きます

0
var isChecked = $(this).is(':checked'); 
var id = $(this).attr('id'); 
0

イベントの対象となった要素に等しいコンテキスト(このキーワード)でコールバック関数を起動します(つまり、 、どちらのチェックボックスがクリックされても)。私はjQuery 1.7を使用しており、clickイベントはチェックボックスでうまく動作します。

クラスはjQueryの選択エンジンでの選択用に最適化されているので、クラスではなくモニタするチェックボックスを区別することをお勧めします。

$(':checkbox.im_special').click(function() { 
    var $this = $(this); 
    var id = $this.attr('id'); 
    var checked = $this.is(':checked'); 
}) 
+0

これは私のコードと基本的に同じです。私は、クラスセレクタを使用していても、clickイベントとjquery mobileに問題があります。 – imObjCSwifting

0
$('input:checkbox[name=chkBox]').click(function() { 
    if ($(this).is(':checked')) 
     alert($(this).attr('id')); 
}); 

入力がチェックされているとき、これはないのチェックを外しに、確認のチェックボックスを警告する必要があります。発生したイベントを '変更'に変更する必要がある場合は、変更してください。しかし、私はブラウザでの互換性のために、「クリック」がIEとうまく動作しないことを発見しました。 jquery mobileでどのように動作するのかわかりません、申し訳ありません。

+0

これは優れていますが、チェックされたチェックボックスは、クリックされたチェックボックスではないことを警告します。 – imObjCSwifting

関連する問題