バーコードをスキャンするためのフォームがあります。一方が入力されると、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
となります。次に、2番目のバーコード、たとえば2222
をスキャンします。 が2222
に設定されていても、form
はpristine
とinvalid
の両方に設定されています。
簡単に言えば、同じフォームを2回送信するにはどうすればよいですか?
ありがとうございます!
ネイティブのDOM有効性メソッドを使用して除外し、角度のあるものだけを使用します。 'onchange'、' oninvalid'、 'onclick'などを使用する理由は絶対にありません。実際にはフォーム上で 'novalidate'を使用して、角度ですべて管理してください – charlietfl