我有一个输入控件,这是一个必填字段。但是,我想使用javascript动态更改所需的属性,以便它可以变得不需要。但是,它不起作用。知道如何让它发挥作用吗?
window.onload = function(){
document.getElementById("website").setAttribute("required","false");
}
<input id="website" type="url" required>
答案 0 :(得分:3)
可能需要使用方法removeAttribute()
答案 1 :(得分:3)
required
是所谓的boolean attribute。它仅存在于元素上表示输入是必需的。它的价值并不重要。
如果要使输入可选,则删除属性(所有布尔属性都相同):
document.getElementById("website").removeAttribute("required");
或者,访问 DOM属性并将其设置为false
:
document.getElementById("website").required = false;
您通常应该prefer dealing with properties than with attributes。它也使意图更清晰。
答案 2 :(得分:0)
此问题类似于涉及“隐藏”属性的另一个问题。为了获得更广泛的兼容性,请考虑使用属性的XHTML形式,而不是HTML表单:
<input id="website" type="url" required="required" />
(与'hidden'的相似之处在于该属性被指定为hidden =“hidden”)
无论如何,在尝试更改JavaScript中隐藏属性的值时,将其设置为“false”不起作用。但是,将其设置为空字符串会出现这种情况,因此您可以尝试“必需”:
document.getElementById("website").required="";
document.getElementById("website").required="required"; //when required wanted