6

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")

これは正しい方法ですか?使用できる別のセレクターはありますか?

4

6 に答える 6

12

サーバー側コントロールのClientIDプロパティを使用できます。

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

または、「ends with」セレクターを使用できます: attribute$=value

var isChecked =  $('form input[name$=chkOk]').attr("checked");
于 2009-02-27T20:19:46.353 に答える
1

いつもこの表記を使っていました

$('#ctl00_Content_chkOk:checked').length; // will evaluate as true when checked
于 2009-02-27T20:19:31.080 に答える
1

できるよ

$("input[id*=_chkOk]").attr('checked');

于 2009-02-27T20:21:57.627 に答える
0

私は 2 つの方法の間を行き来する傾向があります。CMS で言及されているように、コントロールの clientID プロパティを使用するか、コード ビハインドで JavaScript コードを生成し、ページのClientScriptManagerを使用してブラウザに書き込みます。

于 2009-02-27T20:22:44.613 に答える
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');

一つを選ぶ ;)

于 2009-02-27T20:15:50.247 に答える
0

ええ、JQuery は、ASP.NET エンジンまたは単純な HTML のどちらを介してページにレンダリングされるかのみを気にするため、ID または名前を介してアクセスする必要があります。使用した下の 2 つのバージョンは、$('#ct100_Content_chk0k').attr("checked") と同様に機能します。

アダム

于 2009-02-27T20:17:12.960 に答える