javascript - AngularJS 获取没有表单的无效元素组

标签 javascript angularjs

有没有一种好的方法可以在不使用表单的情况下获取一组元素?我的问题是,使用 .net mvc 和 Html.BeginForm 会删除其内部的任何表单。

<fieldset name="user_fieldset">
   <input type="text" ng-model="Firstname" />
   <input type="text" ng-model="Lastname" />
   ...
</fieldset>
<button ng-disabled="user_fieldset.$valid" ng-class="{'disabled' : user_fieldset.$valid}">Next</button>

最佳答案

您可以使用ng-form指令作为属性。

来自 AngularJS Hub 的示例:

angular.module("mainModule", [])
  .controller("mainController", function ($scope)
  {
    $scope.person = {};
  });
<!DOCTYPE html>
<html>
<head>  
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
  <style>
    label
    {
      display: inline-block;
      width: 120px;
      vertical-align: middle;
    }

    input
    {
      display: inline-block;
      vertical-align: middle;
    }

    input.ng-invalid
    {
      border: solid red 2px;
    }

    form
    {
      padding: 10px;
    }

    textarea
    {
      width: 250px;
      height: 160px;
    }
  </style>
</head>

<body ng-app="mainModule">
  <div ng-controller="mainController">
    <form name="personForm" novalidate>
      <label for="firstNameEdit">First name:</label>
      <input id="firstNameEdit" type="text" name="firstName" ng-model="person.firstName" required /><br />
      <label for="lastNameEdit">Last name:</label>
      <input id="lastNameEdit" type="text" name="lastName" ng-model="person.lastName" required /><br />
      <ng-form name="addressForm">
        <label for="addressEdit">Address:</label>
        <input id="addressEdit" type="text" name="address" ng-model="person.address" /><br />
        <label for="zipEdit">ZIP code:</label>
        <input id="zipEdit" type="number" name="zip" ng-model="person.zip" required /><br />
        <label for="cityEdit">City:</label>
        <input id="cityEdit" type="text" name="city" ng-model="person.city" /><br />
        <label for="stateProvinceEdit">State/Province:</label>
        <input id="stateProvinceEdit" type="text" name="stateProvince" ng-model="person.stateProvince" /><br />
        <label for="countryEdit">Country:</label>
        <input id="countryEdit" type="text" name="country" ng-model="person.country" />
      </ng-form>
    </form>
    <br />
    <strong><label for="userDebugText">Person:</label></strong><br />
    <textarea id="userDebugText">{{person | json}}</textarea><br />
    <br />
    <strong>Form validity:</strong><br />
    <ul>
      <li><strong>personForm.$valid =</strong> {{personForm.$valid}}</li>
      <li><strong>personForm.addressForm.$valid =</strong> {{personForm.addressForm.$valid}}</li>
      <li><strong>personForm.firstName.$valid =</strong> {{personForm.firstName.$valid}}</li>
      <li><strong>personForm.lastName.$valid =</strong> {{personForm.lastName.$valid}}</li>
      <li><strong>personForm.addressForm.zip.$valid =</strong> {{personForm.addressForm.zip.$valid}}</li>
    </ul>
  </div>
</body>
</html>

关于javascript - AngularJS 获取没有表单的无效元素组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856573/

相关文章:

javascript - 如何捕获 Angular ng-include 错误

javascript - 重复使用 Handlebars 查找

javascript - 检查用户是否离线并更新数据库中的字段

javascript - AngularJS - Controller 功能顺序 - 一些引用文献不起作用

Javascript:在字符串的第二个字符后添加整数

angularjs - Protractor + Selenium 网格 : Shard Test Specs Across Nodes

javascript - 如何在不破坏 Angular 模型(数组)的情况下过滤它

javascript - AngularJS 在 for 属性中写入变量后添加空格

javascript - Angular-Chart-JS - 根据点范围具有不同填充颜色的折线图

javascript - 如何为带有服务的 Controller 编写单元测试