6

获取由 ASP.NET 使用 jQuery 呈现的控件的正确方法是什么?

示例:我有一个这样生成的复选框:

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

或者你可以使用“结尾”选择器: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
$('#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 或名称访问它。您使用的两个底层版本与 $('#ct100_Content_chk0k').attr("checked") 一样有效。

亚当

于 2009-02-27T20:17:12.960 回答
0

我倾向于在两种方式之间来回走动。我要么使用 CMS 提到的控件的 clientID 属性,要么在后面的代码中生成 javascript 代码并使用页面的ClientScriptManager将其写入浏览器。

于 2009-02-27T20:22:44.613 回答