HTML5验证 - 覆盖document.getElementById('inputID')。validity.valid value

时间:2016-06-16 16:43:08

标签: html5 validation

我正在尝试同时执行客户端和&服务器端电子邮件验证。

我需要在电子邮件上进行客户端验证:

<input id="cemail" type="email" name="email" placeholder="Your E-Mail" required> 

如果存在电子邮件,也会在服务器端执行验证,如果存在,我需要验证失败(invalid)。

我如何实现这种功能?有没有办法将document.getElementById('inputID').validity.valid属性修改为false

1 个答案:

答案 0 :(得分:0)

您可以尝试使用setCustomValidity方法。如果error param不为空,则会阻止表单提交并显示您的自定义消息:

document.getElementById('inputID').setCustomValidity('Email already exists!');
<form>
  <input id="inputID" required />
  <input type="submit" />
</form>

正如您在我的代码段中看到的那样,即使字段不为空且电子邮件有效,它也会始终显示消息。它也阻止表单提交。

要传递表单提交,您只需要使用空字符串作为参数调用此方法:

 document.getElementById('inputID').setCustomValidity('');

修改

如果您想要检查模糊,则需要调用checkValidity方法:

document.getElementById('inputID').onblur = function( e ) {
  e.target.checkValidity();
};