如何在AngularJS中验证文本框

时间:2016-11-24 10:39:44

标签: angularjs

我需要验证文本框。我正在使用ng-required =“true”,但它没有显示必需的消息。如果我点击保存按钮,它会直接放到save()函数。如何避免它。

<div ng-app="LearnApp" ng-controller="csrControl">
    <table>
        <tr>
            <td>
                Name
            </td>
            <td>
                :
            </td>
            <td>
                <input id="txtName" type="text" ng-model="txtName" ng-required="true" placeholder="Name" />
            </td>
        </tr>
        <tr>
            <td>
                Address
            </td>
            <td>
                :
            </td>
            <td>
                <input id="txtAddress" type="text" ng-model="txtAddress" ng-required="true" placeholder="Address" />
            </td>
        </tr>
        <tr>
            <td colspan="3" align="right">
                <input id="btnSave" type="button" value="Save" class="button" ng-click="save()" />
                <input id="btnCancel" type="button" value="Cancel" class="button" />
            </td>
        </tr>
    </table>
</div>
<script type="text/javascript">
    var app = angular.module("LearnApp", []);
    app.controller("csrControl", function ($scope, $http) {

        $scope.save = function () {

        };

    });
</script>

3 个答案:

答案 0 :(得分:0)

我认为你错过了Form标签。

<form name="myForm" >
  ....
</form>

答案 1 :(得分:0)

您需要添加表单标记并为表单指定名称。并使用此名称作为错误消息,如:

all: Child\\a$$b\\\ \\\ {'}(a.o\#$$@,&+=~`),[].o

%.o: %.c
    $(CC) '$(subst ','"'"',$(subst \,,$(subst \\,/,$+)))'

并且还在服务器端放置条件以在保存之前验证表单:

 <form name="myForm" novalidate>

    //some code

    <input type="text" ng-model="abc" name="txt1" ng-required="true"/>
        <div ng-messages="myForm.txt1.$error">
            <div ng-message="required"> This is Required! </div>                                       
        </div>
 </form>

答案 2 :(得分:0)

使用表单标记和 ng-submit ,如果您的表单有效,则会调用提供的函数或抛出默认的html5验证错误。仅使用“required”属性将需要输入。如果必须评估可以分配给ng-required指令的表达式,请使用ng-required。

如果您需要特定类型的错误消息并避免默认的html5验证,则可以在表单标记中使用 novalidate 指令。 有关Angular表单验证的更多信息,官方documentation和此tutorial会有所帮助。

检查以下对代码的更改。

<form ng-submit="save()">
   <table>
    <tr>
        <td>
            Name
        </td>
        <td>
            :
        </td>
        <td>
            <input id="txtName" type="text" ng-model="txtName" required placeholder="Name" />
        </td>
    </tr>
  <tr>
        <td colspan="3" align="right">
            <input id="btnSave" type="submit" value="Save" class="button"/>
            <input id="btnCancel" type="button" value="Cancel" class="button" />
        </td>
    </tr>
</form>