Tengo un control de entrada que es un campo obligatorio. Sin embargo, quiero usar javascript para cambiar dinámicamente el atributo requerido para que NO sea necesario. Sin embargo, no funciona. ¿Alguna idea de cómo hacer que funcione?
window.onload = function(){
document.getElementById("website").setAttribute("required","false");
}
<input id="website" type="url" required>
3 respuestas
required
es un llamado atributo booleano . Su mera existencia en el elemento indica que se requiere la entrada. No importa qué valor tenga.
Eliminar el atributo si desea que la entrada sea opcional (lo mismo ocurre con todos los atributos booleanos):
document.getElementById("website").removeAttribute("required");
Alternativamente, acceda a la propiedad DOM y configúrela en false
:
document.getElementById("website").required = false;
Por lo general, debería prefiere tratar con propiedades que con atributos. También aclara las intenciones.
Este problema es similar a otro que involucra el atributo "oculto". Y para una compatibilidad más amplia, considere la forma XHTML de usar el atributo, en lugar del formulario HTML:
<input id="website" type="url" required="required" />
(La similitud con 'hidden' es que el atributo se especifica como hidden = "hidden")
De todos modos, cuando intente cambiar el valor del atributo oculto en JavaScript, establecerlo en "falso" no funciona. Sin embargo, establecerlo en una cadena vacía sí, así que eso es lo que podría intentar para 'requerido':
document.getElementById("website").required="";
document.getElementById("website").required="required"; //when required wanted
Probablemente necesite usar el método removeAttribute ()
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.