Seleccionar y desactivar cada campo de entrada dentro de un formulario, envuelto en una tabla en jquery
-
23-09-2019 - |
Pregunta
Estoy inhabilitación de un formulario basado en una casilla ...
Estoy teniendo problemas para añadir el atributo deshabilitado.
aquí es lo que tengo hasta ahora: HTML:
<table id="shipInfoTable">
<tr>
<td>Name:</td>
<td><input type="text" name="name" /></td>
</tr>
...
</table>
Javascript / selector de manipulación de atributos (jQuery):
$("#shipInfoTable tbody tr td input").each(function(index, item){
item.attr("disabled", true);
});
de error Chrome Dev consola:
Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'
Cuando alerto a cabo la item
dentro del .each()
que alerta [object HTMLInputElement]
No estoy seguro de cómo seleccionar el elemento de entrada correctamente. ¿Qué estoy haciendo mal?
Solución
La función no le dará un objeto jQuery. Debe ser:
$("#shipInfoTable input").each(function(index, item){
$(item).attr("disabled", true);
});
(nota que también he simplificado el selector, que todavía funciona)
Si usted no está haciendo nada con eles cada elemento, esto funcionará así:
$("#shipInfoTable input").attr("disabled", true);
Otros consejos
....
$("#shipInfoTable tbody tr td input").each(function(){
$(this).attr("disabled", true);
});
el problema es la falta de $ () en la función each () ...
$("#shipInfoTable tbody tr td input").each(function(index, item){
$(item).attr("disabled", true);
});