页面加载时无法通过$ invalid禁用提交按钮

时间:2017-12-09 18:02:30

标签: angularjs

我正在尝试 invalidate和禁用页面加载上的提交按钮,因为没有将文本输入文本框无效,但我的代码无效,有人可以提供解决方案。

BehaviorSubject

3 个答案:

答案 0 :(得分:1)

您实际上在提交按钮中检查了$dirty状态是否已禁用状态。

<input type="submit" ng-disabled="myForm.user.$dirty && myForm.user.$invalid">
当用户使用$dirty输入进行干预时,

true仅设置为myForm.user,而页面加载时则不然。相反,请尝试检查$pristine州(或!$dirty

<input type="submit" ng-disabled="myForm.user.$pristine || myForm.user.$invalid">

答案 1 :(得分:1)

删除提交按钮中的脏检查:

<input type="submit" ng-disabled=" ̶m̶y̶F̶o̶r̶m̶.̶u̶s̶e̶r̶.̶$̶d̶i̶r̶t̶y̶ ̶&̶&̶ ̶ myForm.user.$invalid">

答案 2 :(得分:0)

  

字段内容有效

$输入输入并且输入与您的模式不匹配时无效。 你必须使用$ error.required来实现你的目标。

后续工作

<div id="reg_bground">
     <div id="formdiv" ng-app="myApp" ng-controller="valCtrl">
            <form name="myForm" novalidate>
                <div style="font-family:calibri; font-size:30px; font-
        weight:bolder;">
                    <span>Register:</span>
                </div>
                <div>
                    <span>Name:</span><br>
                    <input type="text" name="user" ng-model="user" required><br>
                    <p ng-show="myForm.user.$dirty && 
      myForm.user.$error.required">*Please insert the name</p>
                </div>
                <input type="number">
                <input type="submit" ng-disabled="myForm.user.$dirty && 
     myForm.user.$error.required">
            </form>
         </div>