angular.js - ng-pattern 驗(yàn)證問題
問題描述

$scope.regex = /^1[34578]d{9}$/;

1.對手機(jī)號進(jìn)行了驗(yàn)證2.現(xiàn)在添加的時(shí)候會進(jìn)行驗(yàn)證3.但是編輯的時(shí)候,如果之前的手機(jī)號填寫有錯(cuò),不會提示,這樣保存的時(shí)候會出錯(cuò)。保存時(shí)是這樣判斷的
問題解答
回答1:要想要 input輸入的時(shí)候驗(yàn)證 + form提交的時(shí)候驗(yàn)證:第一步:給要驗(yàn)證的 input 添加 onkeyup 事件,在鍵盤松開的時(shí)候觸發(fā)驗(yàn)證第二步:給 form 添加 onsubmit 事件,在表單提交的時(shí)候做驗(yàn)證
下面是一個(gè)范例:HTML:
<form action=’url’ id=’login_form’> 手機(jī)號:<input type=’number’ name=’phone’ /> 提交:<input type=’submit’ value=’提交’ /></form>
Javascript
var form = document.forms[’login_form’]var phoneNum = form.elements[’phone’];var phoneReg = /^1[34578]d{9}$/;// 檢測手機(jī)號碼var checkUserPhoneNum = function(){ var phoneVal = phoneNum.value;// 表單驗(yàn)證 if (!phoneReg.test(phoneVal)) {return false; }return true;};// 手機(jī)號碼輸入的時(shí)候驗(yàn)證phoneNum.onkeyup = function(){ if (!checkUserPhoneNum()){// 手機(jī)號碼不正確的時(shí)候要做的事情....return ; }// 手機(jī)號碼正確的時(shí)候要做的事情....};// 表單提交form.onsubmit = function(event){ // 首先阻止表單提交 event.preventDefault();// 手機(jī)號碼驗(yàn)證 if (!checkUserPhoneNum()){console.log(’請輸入正確的11位手機(jī)號碼’);return ; } // 通過驗(yàn)證,則提交表單 this.submit();};回答2:
可以改成:
if ($scope.userform.$dirty && $scope.userform.$invalid) {}
其實(shí)當(dāng)無任何變更時(shí) $scope.userform.$dirty 時(shí)不允許提交,這也算是合理的。
========UPDATE========
你的form寫法有很大的問題。
angular自帶html5屬性的驗(yàn)證模型angular表單自身是包含著大部分html5表單元素的驗(yàn)證,比如:required。要想啟用它,需要給from加上 ng-submit='adduserinfo()',既然有驗(yàn)證模型,那就去掉瀏覽器自身的驗(yàn)證,再加上 novalidate。
既然表單加上提交動作,那么確定按鈕就不需要任何跟事件有關(guān)的東西了。
<form name='userform' novalidate ng-submit='adduserinfo()' id='user_form'> <button type='submit'>確定</button></form>
其實(shí)angular自身的驗(yàn)證模型還是非常豐富,特別是有正則表達(dá)式,可以做的事非常多。
回答3:試試把ng-pattern='/^1/'(你寫的regex)直接寫在界面上 不要用變量定義
相關(guān)文章:
1. docker綁定了nginx端口 外部訪問不到2. 前端 - html5 audio不能播放3. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!4. html - radio的使用時(shí)如何避免整個(gè)頁面只能選一個(gè)的情況5. git - webstorm窗口中左側(cè)列表的文件名顏色怎么修改6. 利用百度地圖API定位及附件商家信息服務(wù)7. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題8. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?9. 請問各位java自帶類的一些問題10. java - Activity 進(jìn)入后臺再次傳值?

網(wǎng)公網(wǎng)安備