动态更改html5输入控件的必需属性

时间:2014-09-02 16:34:04

标签: javascript html5

我有一个输入控件,这是一个必填字段。但是,我想使用javascript动态更改所需的属性,以便它可以变得不需要。但是,它不起作用。知道如何让它发挥作用吗?

window.onload = function(){
    document.getElementById("website").setAttribute("required","false");
}

<input id="website" type="url" required>

3 个答案:

答案 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