如何通过JS设置HTML5输入

时间:2014-11-10 12:13:50

标签: javascript html5 required

我有一个包含许多输入字段和单选按钮的表单。 某些字段必须获取required - attribute。但是 字段是必需的取决于点击单选按钮。 (如果"公司电子邮件"已选中 - >输入字段"公司电子邮件"是必填项,否则为私人电子邮件) 最初所有字段都应为required=false。 但这不起作用。无论我赋予必需属性的价值,所需的总是如此。 那么......我怎样才能将输入字段最初设置为required = false?

编辑:

谢谢大家的回答。

实际上没有任何作用。 我做了一个像这样的测试html文档:

function test2()
            {
                document.getElementById("33").attr("required");
            }
<form method="post" action="#">
    <input type="text" id="33">
    <input type="text">
    <input type="text">
    <input type="text">
    <input type="radio" onclick="test2()">
    <input type="submit" value="send">
</form>

令人难以置信,但这个非常简单的例子不起作用。 id为33的字段不是必填字段。 我可以提交表格,没有检查任何内容。 这有什么不对?

编辑2:

现在我找到了解决方案:

function test2()
            {
                document.getElementById("33").required = true;
            }

这适用于我的示例页面。我必须检查我是否真的可以在我的真实项目中使用它。

4 个答案:

答案 0 :(得分:0)

从不需要的字段中删除required属性。

在HTML5中,这是如何使用required

的示例
<input type="text" name="name" required>

因此,即使将其设置为false(或其他任何事实),也可能被认为是真的。

答案 1 :(得分:0)

   $(document).ready(function() {
           $("#privateemail").attr("required");
             $("#companyemail").removeAttr("required");
    $('#checkbox1').change(function() {
        if($(this).is(":checked")) {
             $("#companyemail").attr("required");
             $("#privateemail").removeAttr("required");
        }
        else{
             $("#privateemail").attr("required");
             $("#companyemail").removeAttr("required");
          }

    });
});

我希望这可能会有所帮助,让我知道您的反馈......

答案 2 :(得分:0)

尝试删除所需的属性

your-input.removeAttr( "required" );

答案 3 :(得分:0)

required是一个布尔属性,所以无论你给出什么值,它仍然是必需的 您可以设置元素属性

,而不是设置属性
document.getElementById('companyemail').required = false;