javascript - 使用 angularjs 进行表单验证

标签 javascript html angularjs validation

我有一个表格

<form name="formName">
 <table>
    <tr>
       <td><input type="text" ng-model="validate" required/></td>
    </tr>
 </table>
</form>
<button type="button" class="btn btn-default" ng-click="validate()">save</button>

如您所见,按钮位于表单之外。我想在单击按钮进入 $scope.validate(); 时验证表单

问题是,我如何使用 angularjs 来实现这一点?

最佳答案

无论按钮位于表单内还是表单外,当模型的任何属性发生更改时都会执行验证。所以剩下的唯一问题是何时显示错误消息。

btw required 来自 HTML5 ng-required 是您应该使用的属性。

下面的代码在任何属性更改时显示错误消息

<div ng-app="mod">
<div ng-controller='MCtrl'>
    <form name="formName" novalidate>
        <table>
            <tr>
                <td>
                    <input type="text" name="prop" ng-model="model.property" ng-required="true" />
                    <span ng-show="formName.prop.$error.required">Required</span>
                </td>
            </tr>
        </table>
    </form>
    <button type="button" class="btn btn-default" ng-click="validate(formName)">save</button>
</div>

mod.controller('MCtrl', function ($scope) {
    $scope.model = { property : ''};

    $scope.validate = function(form){
        alert(form.$valid);
    }

});

如果您只想在提交表单时显示错误,您可以添加一个变量来跟踪它,就像下面的代码一样(注意 ng-show="formName.prop.$error.required && Submitd"中的附加变量

<div ng-app="mod">
<div ng-controller='MCtrl'>
    <form name="formName" novalidate>
        <table>
            <tr>
                <td>
                    <input type="text" name="prop" ng-model="model.property" ng-required="true" />
                    <span ng-show="formName.prop.$error.required && submitted">Required</span>
                </td>
            </tr>
        </table>
    </form>
    <button type="button" class="btn btn-default" ng-click="validate(formName)">save</button>
</div>

mod.controller('MCtrl', function ($scope) {
    $scope.model = { property : ''};
    $scope.submitted = false;

    $scope.validate = function(form){
        $scope.submitted = true;
        alert(form.$valid);
    }

});

关于javascript - 使用 angularjs 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363297/

相关文章:

JavaScript 平均函数

javascript - 如何使用发布请求从浏览器上传图像 Instagram

javascript - jQuery 中一个选择框有两个功能

javascript - 使用过滤器在 Angularjs 中执行搜索后清除列表?

javascript - 应用程序/代码安全

javascript - 第三方网站的登录对话框

javascript - 无法将 'this' 值从一个 javascript 函数传递到另一个函数?

javascript - 模态中的模态或模态 Angular js 1 和 html 中的 div 到 "hide and show"

javascript - HTML5 Canvas 图像移动像素化

javascript - 如何判断请求/ promise 是否需要超过 5 秒才能完成,Angular JS