2009-02-27 8 views
6

¿Cuál es la forma correcta de obtener un control representado por ASP.NET con jQuery?jQuery y nombres de ASP.NET

Ejemplo: Tengo una casilla de verificación que se ha generado de esta manera:

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

Si quiero seleccionar a conseguir si se comprueba, yo probamos este:

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

y

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

Pero no funcionó, tuve que hacerlo así

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

Y creo que esto habría trabajado también:

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

Es esta la forma correcta de hacerlo? ¿Hay otro selector que pueda usar?

Respuesta

12

Puede utilizar la propiedad de control del lado del servidor ClientID:

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

o usted podría utilizar el "termina con" Selector: 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'); 

Escoja uno;)

0

Sí, jQuery sólo se preocupa por lo que se representa en la página, ya sea a través del motor ASP.NET o por simple HTML, por lo que tendrá que acceder a él a través de la identificación o nombre Las dos versiones inferiores que utilizó funcionarían tan bien como $ ('# ct100_Content_chk0k'). Attr ("checked").

Adam

1

siempre he utilizado esta notación

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

Puede hacer

$ ("entrada [id * = _ chkOk]"). Attr ('checked');

0

Tiendo a ir y venir de dos maneras. Uso la propiedad clientID del control tal como lo menciona CMS o genero el código javascript en mi código y uso el ClientScriptManager de la página para escribirlo en el navegador.

Cuestiones relacionadas