2015-06-20 71 views
1

該任務還挺原始。手動突出顯示角度表單的所有無效輸入

我得到了一個帶有各種輸入的簡單的Angular表單,並且我想手動突出顯示無效輸入(例如,在提交操作上)。

我試圖循環無效輸入,假設他們必須有一些方法來突出顯示錯誤,但不幸的是他們沒有。

與表格相同。 $setDirty()也沒有工作。

我使用ng-form指令來訪問表單和輸入。

AngularJS版本是1.2.x.

+0

首先,你必須精確什麼無效的輸入對你意味着什麼(空?),其次投入僅僅是HTML元素,因此,他們沒有這樣的方法爲「在錯誤的亮點」,只是DOM操作功能。我對你的建議是考慮使用角度驗證:http://www.w3schools.com/angular/angular_validation.asp –

回答

1

你形成了標記應該是什麼樣子,所以,當你在提交納克級的點擊將增加對formsubmitted類,這將使你的想法,只要你對形式和現場遞交類有ng-invalid類,可以突出那些元件

標記

<ng-form name="form" ng-class="{submitted: submitted}" ng-submit="submitted=true; submit();"> 
    <input type="text" name="firstname" ng-model="formData.firstname"> 
    <input type="text" name="lastname" ng-model="formData.lastname"> 
    <input type="submit" value="submit"> 
</ng-form> 

CSS

.submitted input.ng-invalid { 
    border: solid 1px red; 
} 
+0

是的,好像是一個顛覆過程:)謝謝。 – mms27

+0

你是什麼意思由ovrerthought? –

+0

基本上,這是CSS解決方案,我一直在尋找JavaScript。但在這裏,這是多餘的,prolly。 – mms27

0

使用ng-pattern要求它會檢查你的驗證。和onSubmiy你可以定製你的驗證還

例子:http://jsfiddle.net/kevalbhatt18/dmo1jg02/

<div ng-app ng-controller="formCtrl"> 
<form name="myForm" ng-submit="onSubmit()"> 
    <input type="number" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" required> 
    <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span> 
    <input type="submit" value="submit"/> 
</form> 
</div> 

的js

function formCtrl($scope){ 
    $scope.onSubmit = function(){ 
     alert("form submitted"); 
    } 
} 

+0

我認爲這是什麼OP不同的要求.. –