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. sass - gem install compass 使用淘宝 Ruby 安装失败,出现 4042. javascript - js 对中文进行MD5加密和python结果不一样。3. mysql里的大表用mycat做水平拆分,是不是要先手动分好,再配置mycat4. window下mysql中文乱码怎么解决??5. 为啥不用HBuilder?6. python - (初学者)代码运行不起来,求指导,谢谢!7. javascript - h5上的手机号默认没有识别8. python - 获取到的数据生成新的mysql表9. python的文件读写问题?10. 为什么python中实例检查推荐使用isinstance而不是type?
