HTML5表單必填屬性。設(shè)置自定義驗(yàn)證消息?
用途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在評(píng)論中的建議,從Mootools更改為VanillaJavaScript,但如有必要,您應(yīng)該可以設(shè)計(jì)出等效的Mootools。
我在這里更新了代碼,其setCustomValidity工作方式與我最初回答時(shí)所了解的略有不同。如果setCustomValidity設(shè)置為空字符串以外的任何其他值,則將導(dǎo)致該字段被視為無(wú)效;因此,您必須在測(cè)試有效性之前清除它,而不能只是設(shè)置它而忘記。
正如下面@thomasvdb的注釋中指出的那樣,您需要在某些事件之外清除自定義有效性,invalid否則可能需要通過(guò)oninvalid處理程序進(jìn)行額外的清除操作。
解決方法我有以下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'/>
目前,當(dāng)我將兩個(gè)都空白時(shí)按Enter鍵時(shí),會(huì)出現(xiàn)一個(gè)彈出框,提示“請(qǐng)?zhí)顚懘俗侄巍薄H绾螌⒛J(rèn)消息更改為“此字段不能為空”?
還請(qǐng)注意,類型密碼字段的錯(cuò)誤消息很簡(jiǎn)單*****。要重新創(chuàng)建此名稱,請(qǐng)為用戶名指定一個(gè)值,然后單擊“提交”。
我正在使用Chrome 10進(jìn)行測(cè)試。請(qǐng)同樣做
相關(guān)文章:
1. java - C語(yǔ)言算法題-韓信點(diǎn)兵 求解?2. html5 - 微信瀏覽器視頻播放失敗3. java - spring-data Jpa 不需要執(zhí)行save 語(yǔ)句,Set字段就可以自動(dòng)執(zhí)行保存的方法?求解4. javascript - 這問(wèn)題怎么處理額5. 網(wǎng)頁(yè)爬蟲 - Python 爬蟲中如何處理驗(yàn)證碼?6. javascript - jQuery中l(wèi)ive事件在移動(dòng)微信端下沒(méi)有效果;代碼如下7. javascript - SuperSlide.js火狐不兼容怎么回事呢8. javascript - owl.carousel.js這個(gè)插件的原作者的網(wǎng)址是多少了?9. phpstady在win10上運(yùn)行10. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)
