Dato questo codice:Come attivare manualmente la convalida di AngularJS da un pulsante al di fuori dei tag del modulo?
<div ng-controller="MyCtrl">
<form ng-submit="onSubmitted()">
Header inputs:
<input type="name" ng-model="sample" required/>
<input type="name" ng-model="sampleX" required/>
<input type="submit" value="This submit triggers validation. But I wanted to put this button at the end of the page"/>
</form>
<hr/>
Some other form here. Think line items
<hr />
<a class="btn" ng-click="/* what could should be put here, so this can trigger the firt form's validation, then submit? */">Wanted this submit button to trigger the validation+submit on the form in which this button doesn't belong</a>
</div>
var app = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.onSubmitted = function() {
alert('submitted!');
};
}
voglio l'ultimo pulsante per attivare la convalida (quindi inviare quando le cose sono validi) al primo modulo. A partire da ora, solo il pulsante all'interno del modulo può attivare la convalida e l'invio di quel modulo. C'è un modo possibile per un pulsante al di fuori del modulo per farlo?
prova dal vivo: http://jsfiddle.net/dzjV4/1/
prendere in considerazione di disporre di direttiva e staccare l'evento click da esso –
Nice +1 per nuovi apprendimi, è bello sapere che è possibile simulare l'evento su angularjs. Tuttavia, non voglio fare affidamento sulla simulazione di un clic su un altro pulsante. Quello che volevo è simulare l'invio (di conseguenza innesca la convalida prima dell'invio). Anche se posso [nascondere il pulsante] (http://jsfiddle.net/HFxe3/) in prima forma, ma mi sembra incredibile. Se esiste un modo API per simulare una convocazione + invio, sarò più che felice di apprenderlo e accetterò questa risposta come risposta – Hao
Penso che se chiami 'document.getElementById (" myformId ").() 'non chiamerà la validazione del client che è" incorporata "nei browser moderni (HTML5). Ma funzionerà se fai la convalida nel tuo Modello. Tuttavia, se lo fai in questo modo, sosterrai tutti i browser, non solo quelli moderni. –