Respuestas:
En versiones anteriores que podrías usar attr
. A partir de jQuery 1.6 deberías usar prop
en su lugar:
$("#target :input").prop("disabled", true);
Para deshabilitar todos los elementos de formulario dentro de 'target'. Ver :input
:
Coincide con todos los elementos de entrada, área de texto, selección y botón.
Si solo quieres los <input>
elementos:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. No estoy seguro de si puede consolidar eso mejor, todavía soy bastante novato en jQuery.
El ejemplo anterior es técnicamente incorrecto. Según la última versión de jQuery, el prop()
método debe usarse para cosas como deshabilitado. Ver su página API.
Para deshabilitar todos los elementos de formulario dentro del 'objetivo', use el selector de entrada: que coincide con todos los elementos de entrada, área de texto, selección y botón.
$("#target :input").prop("disabled", true);
Si solo quieres los elementos, usa esto.
$("#target input").prop("disabled", true);
También la forma más concisa es utilizar su motor de selección. Entonces, para deshabilitar todos los elementos de formulario en un div o formulario principal.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
puedes añadir
<fieldset class="fieldset">
y luego puedes llamar
$('.fieldset').prop('disabled', true);
Para deshabilitar todos los formularios, tan fácil como escribir:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 y abajo
$("#form :input").attr('disabled','disabled');
Con esta línea puede deshabilitar cualquier campo de entrada en un formulario
$('form *').prop('disabled', true);
Gnarf ha dado la respuesta definitiva (que cubre los cambios a la API jQuery en la versión 1.6)
$("#target :input").prop("disabled", true);