如何通过JavaScript将HTML5输入设置为必需

How to set an HTML5 input to required via JavaScript

本文关键字:设置 输入 HTML5 何通过 JavaScript      更新时间:2023-09-26

我有一个包含许多输入字段和单选按钮的表单。某些字段必须获得必需的-属性。但需要哪些字段取决于单击了哪个单选按钮。

(如果选中"公司电子邮件",则需要"公司电子邮件输入栏",否则为私人电子邮件)

最初,所有字段都应为required=false。但这并不奏效。无论我给required属性给定哪个值,required始终为true。

所以。。。如何将输入字段初始设置为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;
            }

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

required是一个布尔属性,因此无论您给定什么值,它都是必需的
您可以设置元素属性,而不是设置属性

document.getElementById('companyemail').required = false;

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

在HTML5中,这是一个如何使用required:的示例

<input type="text" name="name" required>

因此,即使将其设置为假(或任何事实上的东西),也有可能被认为是真的。

   $(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");
          }
    });
});

我希望这能有所帮助,让我知道你的反馈。。。

尝试删除所需的属性

your-input.removeAttr( "required" );