如何启用/禁用 HTML5 必填字段验证?

Posted

技术标签:

【中文标题】如何启用/禁用 HTML5 必填字段验证?【英文标题】:How to enable/disable HTML5 required field validation? 【发布时间】:2018-02-10 02:53:06 【问题描述】:

我有一个表单,我需要对 3 个字段进行条件验证。 这些字段是电子邮件、名字和姓氏。 所以电子邮件字段文本框具有价值,我不需要验证名字和姓氏,我的意思是稍后 2 可以为空。 如果 FirstName & LastName 字段有值,Email 可以为空。

我正在使用 html5 必需属性。

如何使用 jQuery 启用禁用 HTML5 所需的验证器?

【问题讨论】:

【参考方案1】:

删除

$("#txt").removeAttr("required");

添加

$("#txt").attr("required","");

【讨论】:

【参考方案2】:

检查值并删除required 属性。

$('#btnSubmit').on('click', function() 
  if ($('input[name=last]').val() != "" && $('input[name=first]').val() != "")
    $('input[name=Email]').removeAttr("required");
  else if ($('input[name=Email]').val() != "") $('input[name=first],input[name=last]').removeAttr("required");

);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post">
  First:
  <input type="text" name="first" value="" required />
  <br />Last:
  <input type="text" name="last" value="" required />
  <br />Email:
  <input type="text" name="Email" value="" required />
  <br />
  <input type="submit" value="Submit" id="btnSubmit" />
</form>

【讨论】:

【参考方案3】:

试试这个:

jQuery

 $('#Email').removeAttr('required');​​​​​

【讨论】:

【参考方案4】:

这可能对你有帮助

$('button').click(function()
  $('input').each(function()
    $(this).prop('required', !$(this).attr('required'))
  );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" nam="FirstName" placeholder="First Name" required/>
<input type="text" nam="LastName" placeholder="Last Name" required/>
<input type="text" nam="Email" placeholder="Email" required/>

<br/>
<button>
Enable/Disable All inputs
</button>

就像togglingrequired attribute

【讨论】:

以上是关于如何启用/禁用 HTML5 必填字段验证?的主要内容,如果未能解决你的问题,请参考以下文章

只需单击一个按钮即可启用必填字段验证

设置自定义 HTML5 必填字段验证消息

如何在javascript中验证之前修剪非必填字段

如何在只读字段上启用 jquery 验证?

当使用 PHP 在后端验证电子邮件时,如何将输入提交从禁用更改为启用?

如何根据复选框状态禁用/启用提交按钮?