这似乎是一个非常简单的问题,但是,无论出于何种原因,我的submit()
方法未在JS中调用。Javascript提交不起作用
HTML:
<ion-view title="Register" hide-nav-bar="true" nav-transition="none" id="page9">
<ion-content padding="true" class="manual-ios-statusbar-padding" scroll="false">
<form id="register-form4" ng-submit="register()" class="list">
<ion-list id="register-list4">
<label class="item item-input" id="register-input7">
<input type="text" ng-model="registration.email" placeholder="Email" required>
</label>
<label class="item item-input" id="register-input9">
<input type="password" ng-model="registration.password" placeholder="Password" required>
</label>
</ion-list>
</form>
<a id="register-button7" ng-click="document.getElementById('register-form4').submit();" class="button button-positive button-block">Create Account</a>
<a ui-sref="login" id="register-button8" class="button button-positive button-block button-clear">Back</a>
<div ng-show="isError">{{ loginError }}</div>
</ion-content>
</ion-view>
控制器:
.controller('registerCtrl', ['$scope', '$stateParams', "$firebaseAuth", "$location",
function ($scope, $stateParams, $firebaseAuth, $location) {
$scope.register = function() {
var email = $scope.registration.email,
password = $scope.registration.password,
confirmPassword = $scope.registration.confirmPassword;
console.log("Being submitted");
}
}])
我不能改变,即使它会更容易的<a>
标签只是为了有一个表单提交input
但HTML是汽车 - 由Ionic Creator生成,我不能搞砸了。
编辑:我想提交表单,通过这种方式,而不只是触发register()
按钮的点击的原因是我想要触发HTML形式required
的,这样检查领域得到了输入,所以我不必手动去做
编辑2:我已将<a>
标记更改为提交按钮。然而,这仍然无法调用register()
方法,建议的形式没有被提交:
<input type="submit" value="Create Account" id="register-button7" class="button button-positive button-block">
这些docs来看,它应该工作,因为它几乎是相同的格式
我已阅读,1用户标准的HTML submit
和ng-submit
不能一起工作。任何人都知道这是真的吗?
尝试使用“onclick”而不是“ng-click”。 –
你为什么不直接将'ngClick'设置为'ng-click =“register()”'?在这种情况下,我没有看到任何理由需要找到提交表单的表单元素。上面的代码不起作用,因为没有定义'$ scope.document'。另外,我会争辩说,你当前使用的'document.getElementById()'不是“角度的方式”。 TM – c1moore
@ c1moore我原来是这么认为的。其背后的想法是,如果我提交表单,它将触发HTML'required',所以我不必手动检查它们。 – wmash