2009-02-27 12 views
6

jQueryでASP.NETによってレンダリングされたコントロールを取得する正しい方法は何ですか?jQueryとASP.NETの名前

例:

<input id="ctl00_Content_chkOk" type="checkbox" name="ctl00$Content$chkOk" /> 

私はそれがチェックされます場合は取得するには、それを選択したい場合は、私はこれを試してみました:私はこのように生成されたチェックボックスを持って

$('form input[name=chkOk]').attr("checked") 

$('chkOk').attr("checked") 

しかし、うまくいきませんでした。このようにする必要がありました。

$('form input[name=ctl00$Content$chkOk]').attr("checked") 

そして、私はこれを推測するには、あまりにも働いてきたでしょう:

$('ctl00$Content$chkOk').attr("checked") 

これはそれを行うための正しい方法ですか?私が使用できる別のセレクターはありますか?

答えて

12

を使用:

var isChecked = $('#<%=YourCheckBox.ClientID%>').attr("checked"); 

たり、セレクター "で終わる" 使用できますattribute$=value

var isChecked = $('form input[name$=chkOk]').attr("checked"); 
0
$('#ctl00_Content_chkOk').attr('checked'); 
$('form #ctl00_Content_chkOk').attr('checked'); 
$('form input#ctl00_Content_chkOk').attr('checked'); 
$('form input#ctl00_Content_chkOk[type="checkbox"]').attr('checked'); 

1を選択してください;)

0

うん、jQueryのはASP.NETエンジン経由または単純なHTML経由かどうか、ページにレンダリングされたものを気に、あなたはそれを経由してアクセスする必要がありますIDまたは名前。あなたが使った2つのボトムバージョンは$( '#ct100_Content_chk0k')。attr( "checked")と同様に動作します。

アダム

1

私はいつもあなたがClientIDプロパティサーバー側のコントロールを使用することができます。この表記

$('#ctl00_Content_chkOk:checked').length; // will evaluate as true when checked 
1

できます

$( "input [id * = _ chkOk]")。attr( 'checked');

0

私は2つの方法の間を行き来する傾向があります。私は、CMSの記載どおりにコントロールのclientIDプロパティを使用するか、コード内にJavaScriptコードを生成して、そのページのClientScriptManagerを使用してブラウザに書き込みます。

関連する問題