HTML5表单必填属性设置自定义验证消息?
用途setCustomValidity):
document.addEventListener('DOMContentLoaded', function() { var elements = document.getElementsByTagName('INPUT'); for (var i = 0; i < elements.length; i++) {elements[i].oninvalid = function(e) { e.target.setCustomValidity(''); if (!e.target.validity.valid) {e.target.setCustomValidity('This field cannot be left blank'); }};elements[i].oninput = function(e) { e.target.setCustomValidity('');}; }})
我已按照@itpastorn在评论中的建议,从Mootools更改为VanillaJavaScript,但如有必要,您应该可以设计出等效的Mootools。
我在这里更新了代码,其setCustomValidity工作方式与我最初回答时所了解的略有不同。如果setCustomValidity设置为空字符串以外的任何其他值,则将导致该字段被视为无效;因此,您必须在测试有效性之前清除它,而不能只是设置它而忘记。
正如下面@thomasvdb的注释中指出的那样,您需要在某些事件之外清除自定义有效性,invalid否则可能需要通过oninvalid处理程序进行额外的清除操作。
解决方法我有以下HTML5表单:
<form onsubmit='return(login())'><input name='username' placeholder='Username' required /><input name='pass' type='password' placeholder='Password' required/><br/>Remember me: <input type='checkbox' name='remember' value='true' /><br/><input type='submit' name='submit' value='Log In'/>
目前,当我将两个都空白时按Enter键时,会出现一个弹出框,提示“请填写此字段”。如何将默认消息更改为“此字段不能为空”?
还请注意,类型密码字段的错误消息很简单*****。要重新创建此名称,请为用户名指定一个值,然后单击“提交”。
我正在使用Chrome 10进行测试。请同样做
相关文章:
1. docker容器呢SSH为什么连不通呢?2. docker api 开发的端口怎么获取?3. docker网络端口映射,没有方便点的操作方法么?4. 关docker hub上有些镜像的tag被标记““This image has vulnerabilities””5. python - from ..xxxx import xxxx到底是什么意思呢?6. nignx - docker内nginx 80端口被占用7. debian - docker依赖的aufs-tools源码哪里可以找到啊?8. ddos - apache日志很多其它网址,什么情况?9. 请教各位大佬,浏览器点 提交实例为什么没有反应10. angular.js - ng-grid 和tabset一起用时,grid width默认特别小
