当前位置: 首页 > 面试题库 >

ng-click angularjs上的表单验证

蔚和安
2023-03-14
问题内容

我无法在现有答案中找到解决方案,因此我将其发布。

我有一个包含许多输入字段的表单,其中很多都是必需的。

表单中有按钮(超过2个),并使用ng-click绑定到控制器中的功能。

在执行功能之前,我需要先在ng-click上验证表单。

默认情况下,表单验证是在函数执行后进行的。如果未填写必填字段,则功能不应运行。

我制造了一个小提琴。https://jsfiddle.net/z1uyyqg9/

<script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.name=undefined;
        $scope.preview = function(){
            alert("Previewed");
        };
        $scope.update = function(){
            alert("Updated");
        }
    });
</script>

<div ng-app="myApp" ng-controller="myCtrl">

    <form>
        <input type="text" ng-model='name' required>
        <button ng-click='preview()'>Preview</button>
        <button ng-click='update()'>Update</button>
    </form>

</div>

问题答案:

一个非常非常简单的解决方案是为表单命名,以便您可以引用它,然后ng-click仅在表单有效时才调整来触发:

<form name="myform">
    <input type="text" ng-model='name' ng-required="true" />
    <button ng-click="myform.$valid && preview()">Preview</button>
    <button ng-click="myform.$valid && update()">Update</button>
</form>

分叉的小提琴:https
://jsfiddle.net/r8d1uq0L/

我喜欢将验证(与业务有关)从视图中分离出来,为此,我创建了egkyron,使您可以在代码中定义模型约束,并使用程序验证和标准Angular表单验证。



 类似资料:
  • 问题内容: 我正在尝试在博客文章(尤其是ng禁用形式)的表单中使用角度表单验证。由于某些原因,我无法确定提交按钮没有被禁用,除非所有三个输入字段均有效,否则应该处于应有的状态。谢谢您的帮助。 这是我的博客模板 这是我的index.html 这是我的博客控制器 问题答案: 您在表单的每个字段中都缺少您。请记住,当你提到在当时任何形式的字段创建表单名对象中的额外的对象与特定的属性,然后考虑而表单验证一

  • 本文向大家介绍angular 基于ng-messages的表单验证实例,包括了angular 基于ng-messages的表单验证实例的使用技巧和注意事项,需要的朋友参考一下 最近在学习angular,那么今天也算个学习笔记吧! html ng-messages="myForm.myName.$error" 给出错误类型(required, char, exist, minlength) erro

  • 本文向大家介绍MVC遇上bootstrap后的ajax表单验证,包括了MVC遇上bootstrap后的ajax表单验证的使用技巧和注意事项,需要的朋友参考一下 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点。怎么解决呢? 当然你可以专门写一个针对此的jquery插

  • 如何覆盖symfony2中的表单验证消息。虽然有一个验证。与xml文件相关的模型类。我认为它验证了一个基于html5的表单。 “请匹配要求的格式”,“请填写此字段”。是否有任何方法覆盖此验证消息。 请在这方面帮助我,我被困了一天多,因为我对symfony是全新的

  • 问题内容: 我正在尝试仅在成功验证后提交表格。验证适用于必填项,但不适用于ng-minlength 表单输入无效,但仍在提交表单。 http://jsfiddle.net/pMMke/9/ 我究竟做错了什么。 我不想使用提交按钮禁用方法。 问题答案: 这是您做错的事情:您正在混合使用两个概念Angular验证器 和 HTML5验证器。 在 需要 HTML5验证,例如,规定: 如果存在,它指定提交表

  • CodeIgniter 提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码。 概述 表单验证指南 表单 成功页面 控制器 设置验证规则 使用一个数组设置验证规则 级联规则(Cascading Rules) 预处理数据(Prepping Data) 重新填充表单(Re-populating the Form) 回调 设置错误信息 更改错误定界符 翻译表单域名字 独立显示错误 将一系列验证规