2009-09-13 101 views
114
<form id="target"> 
.... 
</form> 

Respuesta

221

En versiones anteriores puede usar attr. A partir de jQuery 1.6 se debe utilizar en lugar prop:

$("#target :input").prop("disabled", true); 

Para desactivar todos los elementos de formulario dentro de 'objetivo'. Ver :input:

Coincide con todos los elementos de entrada, texto, selección y botón.

Si sólo desea que el <input> elementos:

$("#target input").prop("disabled", true); 
+20

A partir de jQuery 1.6 se debe utilizar '$ ("# objetivo: de entrada"). Prop ("desactivado" , verdadero); ' – danijel

+4

Alguien debería editar la respuesta con el método actualizado; esta es solo información incorrecta en este punto. –

+2

@BenClaar Buen punto. Corregido ahora. – Potherca

34

El ejemplo de arriba es técnicamente incorrecto. Por última jQuery, utilice el método prop() se debe utilizar para cosas como deshabilitado. See their API page.

Para deshabilitar todos los elementos del formulario dentro del 'destino', use el selector de entrada que coincida con todos los elementos de entrada, texto, selección y botón.

$("#target :input").prop("disabled", true); 

Si solo quiere los elementos, use esto.

$("#target input").prop("disabled", true); 
11

También la forma más concisa es usar su motor de selectores. Para deshabilitar todos los elementos de formulario en un div o padre de formulario.

$myForm.find(':input:not(:disabled)').prop('disabled',true) 
0

La respuesta definitiva (sobre los cambios en jQuery API en la versión 1.6) ha sido dada por Gnarf

+0

Pidió "desactivar todas las entradas dentro de un formulario", no solo "desactivar todas las entradas". – Bengala

5

Para desactivar todas las formas, tan fácil como escribir:

jQuery 1.6 +

$("#form :input").prop("disabled", true); 

jQuery 1.5 y posterior

$("#form :input").attr('disabled','disabled'); 
4

puede agregar

<fieldset class="fieldset"> 

y luego se le puede llamar

$('.fieldset').prop('disabled', true); 
Cuestiones relacionadas