javascript - AngularJS - 如果表单无效则阻止提交表单

标签 javascript angularjs forms angularjs-forms

<分区>

我已经为我的问题创建了一个孤立的案例: http://plnkr.co/edit/6LXW5TG76LC9LNSrdpQC

这是孤立案例的代码:

<!DOCTYPE html>
<html ng-app="App">

    <head></head>

    <body ng-controller="ExampleController">
    
    <form name="form" ng-submit="submit()" novalidate>
        <input type="number" name="number" ng-model="number" required><br>
        <span ng-show="form.number.$error.required && form.number.$touched">Required<br></span>
        <span ng-show="form.number.$error.number">Not a number<br></span>
        <input type="submit">
    </form>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
    
    <script>
        
        var App = angular.module('App', []);
        
        App.controller('ExampleController', function($scope) {
        
        $scope.submit = function() {
            alert('send to server: ' + $scope.number);
        }
        
        });
        
        App.run();
        
    </script>
    </body>
</html>

基本上,该示例包含一个数字字段,其下方是显示输入无效(为空或不是数字)时的错误消息。

但是表单仍然会提交,虽然字段值在无效时被设置为'undefined',但我更喜欢在发送到服务器之前检查表单是否有效的方法(此中的警告框示例)。

所以我的问题是——在 AngularJS 中,有没有一种方法可以从 Controller 中检查表单是否有效?或者另一种防止表单无效时提交的方法?

最佳答案

最好将 ng-submit 表达式更改为

ng-submit="form.$valid && submit()"

Angular Directive(指令)表达式的最佳使用。

关于javascript - AngularJS - 如果表单无效则阻止提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998744/

相关文章:

javascript - View 不更新为范围值更新

angularjs - 防止页面从 "jumping"到 ng-view 转换的顶部

javascript - 如何从表单中选择操作页面,然后将值提交到该页面 HTML、PHP、Javascript

javascript - 静态标题和滚动 html 表与 csv 中的 d3

javascript - JSX 中立即调用的函数表达式

javascript - HTML Href 标签的 Json 解析问题

python - Django多表单1 View ..表单错误问题

javascript - jQuery $(form).submit() 仅针对 IE(MVC3 应用程序)不触发

Javascript计算字符串的频率字母

javascript - Asp.Net MVC Ajax View 模型未更新