Учитывая этот код:Как вручную запускать проверку по AngularJS с помощью кнопки за пределами тегов формы?
<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!');
};
}
Я хочу, чтобы последняя кнопка для запуска проверки (то смиряться, когда вещи действительны) на первой форме. На данный момент только кнопка внутри формы может инициировать проверку и представление этой формы. Есть ли какой-либо возможный способ для кнопки вне формы?
Живой тест: http://jsfiddle.net/dzjV4/1/
Подумайте о том, чтобы добавить распоряжаться директивой и отсоединить событие клика от него –
Nice +1 для нового обучения мне, хорошо знать, что можно моделировать событие на angularjs. Тем не менее, я не хочу полагаться на симуляцию щелчка на другой кнопке. Я хотел, чтобы имитировать submit (следовательно, запускает проверку перед отправкой). Хотя я могу [скрыть кнопку] (http://jsfiddle.net/HFxe3/) в первой форме, но мне кажется, что это kludgy. Если есть API-способ для имитации проверки отправки +, я буду более чем счастлив узнать об этом, и я буду принимать это как ответ – Hao
Я думаю, если вы вызовете 'document.getElementById (« myformId »).() 'он не будет вызывать проверку клиента, которая« встроена »в современные браузеры (HTML5). Но он будет работать, если вы сделаете проверку в своей модели. Однако, если вы это сделаете, вы будете поддерживать все браузеры, а не только современные. –