Tengo un formulario que aparece dentro de una capa, y tengo que hacer que todo lo que está dentro de ese formulario sea solo de lectura con respecto a qué tipo de entrada es. De todos modos para hacerlo?¿cómo puedo deshabilitar todo dentro de un formulario usando javascript/jquery?
Respuesta
Esto es bastante simple en la llanura de JavaScript y funcionará de manera eficiente en todos los navegadores que soportan entradas de formulario de sólo lectura (que es más o menos todos los navegadores liberados en la última década):
var form = document.getElementById("your_form_id");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].readOnly = true;
}
$("#formid input, #formid select").attr('disabled',true);
o para que sea de sólo lectura:
$("#formid input, #formid select").attr('readonly',true);
Solo lectura no es lo mismo que deshabilitado. –
@Tim Down, vale, actualicé mi respuesta por solo lectura. –
Puede utilizar el selector de :input
, y hacer esto:
$("#myForm :input").prop('readonly', true);
:input
selecciona todo <input>
, <select>
, <textarea>
y <button>
elementos. Además, el atributo es readonly
, si usa disabled
para los elementos, no se publicarán en el servidor, por lo tanto, elija qué propiedad desea en función de eso.
'button's,' input [type = submit] ', y' input [type = button] 'no son compatibles con la propiedad' readonly'. Consulte https://jsfiddle.net/z4hoh443/ para obtener un ejemplo y https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input para los documentos de origen. – philfreo
Aunque se muestran en gris, las casillas de verificación y los botones de relación aún pueden cambiar sus valores. –
Gracias Tim,
Eso fue realmente útil. He hecho un pequeño ajuste cuando tenemos controles y manejamos un evento sobre ellos.
var form = document.getElementById("form");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].setAttribute("onmousedown", "");
}
Con HTML5 es posible desactivar todas las entradas contenían el uso del atributo <fieldset disabled />
.
discapacitados:
Si este atributo booleano está establecido, los controles de formulario que son sus descendientes, excepto descendientes de su primer elemento opcional , están desactivados, es decir, no editable. No recibirán ningún evento de exploración , como clics del mouse o relacionados con el enfoque. A menudo, los navegadores muestran controles como el gris.
Referencia: MDC: fieldset
Esto funciona en html5. Además, si tiene js que altera los campos, deberá desactivar esa js. Puse mi fieldset como el elemento contenedor de mi formulario y usé este js para excluir cualquier proceso js de la alteración de datos de campo: 'if ($ ('# formID'). Parent(). Prop (" disabled ") == true) { falso retorno; } ' –
// get the reference to your form
// you may need to modify the following block of code, if you are not using ASP.NET forms
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
// this code disables all form elements
var elements = theForm.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].disabled = true;
}
Su puro Javascript:
var fields = document.getElementById("YOURDIVID").getElementsByTagName('*');
for(var i = 0; i < fields.length; i++)
{
fields[i].disabled = true;
}
Usted puede hacer esto la manera más fácil mediante el uso de jQuery. Hará esto para todos los elementos de entrada, selección y elementos de texto (incluso si hay más de uno en números de estos tipos).
$("input, select, option, textarea", "#formid").prop('disabled',true);
o puede hacerlo así, pero esto va a desactivar todos los elementos (sólo aquellos elementos sobre los que se puede aplicar).
$("*", "#formid").prop('disabled',true);
discapacitados propiedad puede se aplica a los siguientes elementos:
- botón
- conjunto de campos de entrada
- optgroup
- opción
- seleccione
- área de texto
Sin embargo, su hasta que usted lo haga usted prefiere usar.
- 1. ¿Puedo deshabilitar el botón 'cerrar' de un formulario usando C#?
- 2. ¿Cómo deshabilitar todo <input > dentro de un formulario con jQuery?
- 3. Cómo deshabilitar un elemento de formulario en un formulario Zend?
- 4. jQuery: ¿cómo se desactiva uno todo dentro de un div? pero aún así mantener todo visible?
- 5. ¿Cómo abrir un formulario dentro de un formulario?
- 6. Formulario dentro de un formulario, ¿está bien?
- 7. usando dos botones de enviar dentro de un solo formulario
- 8. Delphi - formulario dentro del formulario
- 9. cómo deshabilitar todo el cuerpo que no sea un div
- 10. Xcode usando FIXME, TODO, ???,?
- 11. ¿Cómo envío un formulario dentro de un control WebBrowser?
- 12. Rieles Renderice parte de un formulario dentro de otro formulario
- 13. ¿Cómo detectar si el mouse está dentro de todo el formulario y controles secundarios?
- 14. Deshabilitar cookies dentro de un marco/Iframe
- 15. Deshabilitar todos los enlaces dentro de IFRAME usando jQuery
- 16. Diseñar formulario dentro de un controlador diferente
- 17. Deshabilitar el cambio de tamaño de un formulario de Windows
- 18. Cómo PUBLICAR un formulario usando Jersey 2.0
- 19. ¿Cómo puedo actualizar un formulario JQuery
- 20. Cómo incluir una vista parcial dentro de un formulario web
- 21. Botón Enviar imagen dentro de un formulario
- 22. jquery para deshabilitar elementos de formulario
- 23. Cómo deshabilitar struts 2 Generación de tablas para Formulario?
- 24. ASP .NET MVC 3 - Cómo enviar un formulario ajax anidado dentro de un formulario html
- 25. Cómo deshabilitar un botón de envío de formulario "a là Ruby on Rails Way"?
- 26. cómo desvincular todo evento usando jQuery
- 27. ¿Deshabilitar formulario mientras BackgroundWorker está ocupado?
- 28. Botón Deshabilitar en el envío del formulario
- 29. usando pjax para enviar un formulario
- 30. ¿Cómo puedo obtener un elemento dentro de un marco de conjunto de marcos usando JavaScript?
¿Entonces el usuario todavía puede enviar el formulario haciendo clic en el botón enviar? –