Seleccionar y desactivar cada campo de entrada dentro de un formulario, envuelto en una tabla en jquery

StackOverflow https://stackoverflow.com/questions/2348520

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?

¿Fue útil?

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);
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top