这似乎是一个非常简单的问题,但是由于任何原因,我的submit()方法都没有在JS中调用。

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 submitng-submit不能一起使用。有人知道这是真的吗?

最佳答案

您可以在表单内使用类型为commit的html inputbutton。这是JSFiddle上的工作示例:https://jsfiddle.net/ydbhb5dL/

控制器:

angular
    .module('App', [])
    .controller('ExampleController', function ($scope) {
        $scope.registration = {};

        $scope.register = function () {
            var email = $scope.registration.email,
                password = $scope.registration.password;

            console.log('Email:', email);
            console.log('Password:', password);
            console.log('Being submitted!');
        };
    });


HTML:

<div ng-app="App" ng-controller="ExampleController">
<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>

        <input type="submit" class="button-like-link" value="Create Account (button)">
    </form>
    </ion-content>
</ion-view>
</div>

关于javascript - JavaScript提交无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40250067/

10-12 12:28
查看更多