angularjs - 使用 Angularjs 对可编辑行表单进行验证

标签 angularjs asp.net-mvc-4

我是 Anguarljs 的新手,正在处理可编辑行表单。在这种表单中,当我要添加行按钮时,它会显示新行。但是当我要添加没有输入数据的保存按钮时,它显示“空” , Not set"text in form.i wanted that some alert messages should come if text box is empty or dropdown is not selected. 请告诉我应该在哪里更改我的代码。如何以这种形式执行验证 下面的代码

<div ng-controller="EditableRowCtrl">
  <table class="table table-bordered table-hover table-condensed">
    <tr style="font-weight: bold">
      <td style="width:35%">Name</td>
      <td style="width:20%">Status</td>
      <td style="width:20%">Group</td>
      <td style="width:25%">Edit</td>
    </tr>
    <tr ng-repeat="user in users">
      <td>
        <!-- editable username (text with validation) -->
        <span editable-text="user.name" e-name="name" e-form="rowform" onbeforesave="checkName($data, user.id)" e-required>
          {{ user.name || 'empty' }}
        </span>
      </td>
      <td>
        <!-- editable status (select-local) -->
        <span editable-select="user.status" e-name="status" e-form="rowform" e-ng-options="s.value as s.text for s in statuses">
          {{ showStatus(user) }}
        </span>
      </td>
      <td>
        <!-- editable group (select-remote) -->
        <span editable-select="user.group" e-name="group" onshow="loadGroups()" e-form="rowform" e-ng-options="g.id as g.text for g in groups">
          {{ showGroup(user) }}
        </span>
      </td>
      <td style="white-space: nowrap">
        <!-- form -->
        <form editable-form name="rowform" onbeforesave="saveUser($data, user.id)" ng-show="rowform.$visible" class="form-buttons form-inline" shown="inserted == user">
          <button type="submit" ng-disabled="rowform.$waiting" class="btn btn-primary">
            save
          </button>
          <button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default">
            cancel
          </button>
        </form>
        <div class="buttons" ng-show="!rowform.$visible">
          <button class="btn btn-primary" ng-click="rowform.$show()">edit</button>
          <button class="btn btn-danger" ng-click="removeUser($index)">del</button>
        </div>  
      </td>
    </tr>
  </table>

  <button class="btn btn-default" ng-click="addUser()">Add row</button>
</div>

最佳答案

可以使用输入字段内的 ng-minlength="3"ng-required 等属性来验证 Angular 形式。

然后您可以使用 myForm.myInput.$valid 检查该字段是否有效

有一个关于如何使用angularjs验证表单的例子

<script>
   angular.module('inputExample', [])
     .controller('ExampleController', ['$scope', function($scope) {
       $scope.user = {name: 'guest', last: 'visitor'};
     }]);
</script>

<div ng-controller="ExampleController">
  <form name="myForm">
    User name: <input type="text" name="userName" ng-model="user.name" required>
    <span class="error" ng-show="myForm.userName.$error.required">
      Required!</span><br>
    Last name: <input type="text" name="lastName" ng-model="user.last"
      ng-minlength="3" ng-maxlength="10">
    <span class="error" ng-show="myForm.lastName.$error.minlength">
      Too short!</span>
    <span class="error" ng-show="myForm.lastName.$error.maxlength">
      Too long!</span><br>
  </form>
  <hr>
  <tt>user = {{user}}</tt><br/>
  <tt>myForm.userName.$valid = {{myForm.userName.$valid}}</tt><br>
  <tt>myForm.userName.$error = {{myForm.userName.$error}}</tt><br>
  <tt>myForm.lastName.$valid = {{myForm.lastName.$valid}}</tt><br>
  <tt>myForm.lastName.$error = {{myForm.lastName.$error}}</tt><br>
  <tt>myForm.$valid = {{myForm.$valid}}</tt><br>
  <tt>myForm.$error.required = {{!!myForm.$error.required}}</tt><br>
  <tt>myForm.$error.minlength = {{!!myForm.$error.minlength}}</tt><br>
  <tt>myForm.$error.maxlength = {{!!myForm.$error.maxlength}}</tt><br>
</div>

只需阅读有关表单的文档https://docs.angularjs.org/guide/forms

关于输入 https://docs.angularjs.org/api/ng/directive/input

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

相关文章:

asp.net-mvc - 在构建和发布时将文件添加到 bin 目录

javascript - routeProvider 不重定向页面

javascript - 定义模块时依赖注入(inject)不起作用

node.js - 在 Karma 的运行器中包含 Jasmine Node 文件

javascript - 想要使用图表,它可以给你图表库 javascript 中的某些东西带来差异

asp.net-mvc - MVC4 Razor对牙套感到困惑

javascript - 我怎样才能用angularjs改变选项值

javascript - 如何访问 JavaScript 的 .resx 字符串?

ASP.NET MVC 4 包给出 404 错误

javascript - Ajax.ActionLink 的 Onclick 我需要调用 Javascript 函数