Selector de jQuery para entradas con corchetes en el atributo de nombre
Estoy intentando seleccionar este elemento que tiene corchetes en el atributo de nombre:
<input type="text" name="inputName[]" value="someValue">
Probé esto (que no funciona):
$('input[inputName[]=someValue]')
y esto tampoco:
$('input[inputName[]=someValue]')
o esto:
$('input["inputName[]"=someValue]')
EDITAR: Como algunos de ustedes han señalado, $('input[inputName=someValue]')
nunca funcionaría. Lo que estaba tratando de hacer era: $('input[name=inputName][value=someValue]')
. (Pero con []
el atributo de nombre).
Según la documentación de jQuery , intente esto:
$('input[inputName\\[\\]=someValue]')
[EDITAR] Sin embargo, no estoy seguro de que esa sea la sintaxis correcta para su selector. Probablemente quieras:
$('input[name="inputName[]"][value="someValue"]')
Puedes usar una barra invertida para citar caracteres "divertidos" en tus selectores de jQuery:
$('#input\\[23\\]')
Para los valores de los atributos, puede utilizar comillas:
$('input[name="weirdName[23]"]')
Ahora, estoy un poco confundido por tu ejemplo; ¿Cómo se ve exactamente tu HTML? ¿Dónde aparece la cadena "inputName", en particular?
editar bogosidad fija; gracias @Dancrumb
La sintaxis del selector de atributos es [name=value]
donde name
está el nombre del atributo y value
el valor del atributo.
Entonces, si desea seleccionar todos input
los elementos con el atributo name
que tiene el valor inputName[]
:
$('input[name="inputName[]"]')
Y si desea verificar dos atributos (aquí: name
y value
):
$('input[name="inputName[]"][value=someValue]')
Si el selector está contenido dentro de una variable, el siguiente código puede resultar útil:
selector_name = $this.attr('name');
//selector_name = users[0][first:name]
escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1');
//escaped_selector_name = users\\[0\\]\\[first\\:name\\]
En este caso, anteponemos a todos los caracteres especiales una doble barra invertida.