0
我有一個表單用於掃描條形碼。當輸入一個時,一個ng-click
函數觸發並讀入表單和條形碼。像這樣:
<form name="vm.form">
<input ng-model="vm.scannedBarcode"
required
oninvalid="this.setCustomValidity('Please enter a barcode number')"
onchange="this.setCustomValidity('')"
type="text">
<input type="submit"
ng-click="vm.addBarcode(vm.form, vm.scannedBarcode)"
value="Add">
</form>
然後,控制器:
vm.addBarcode = function(form, barcode) {
if(form.$valid){
console.log("okay");
...
// add the barcode to an array of barcodes
}
}
注意,位置表單提交後不會改變。新的條形碼被壓入現有條形碼陣列中,然後顯示在表格下方的表格中。我認爲這是關鍵。
以上工作,但僅限於第一個條形碼掃描,比如1111
。然後我掃描第二個條形碼,例如2222
。現在form
被設置爲pristine
和invalid
,儘管barcode
設置爲2222
,因爲它應該是。
簡而言之,我該如何兩次提交相同的表單?
謝謝!
擺脫使用本機dom有效性的方法,只使用有角度的方法。永遠不要有任何理由在角度上使用'onchange','oninvalid','onclick'等。實際上應該在表單上使用'novalidate'並讓角度管理這一切 – charlietfl