【问题标题】:Angular ng-disabled is not workingAngular ng-disabled 不起作用
【发布时间】:2018-07-10 08:06:02
【问题描述】:

为什么我的按钮无法使用此代码启用和禁用:

<form name="formSendEmail" ng-submit="sendEmailAction();">
    <div class="form-group">
        <label class="label label-muted" for="visitorEmailForSendEmail">Visitor E-mail</label>
        <input type="email" value="{{visitorDetail2.EmailAddress}}" id="visitorEmailForSendEmail" name="visitorEmailForSendEmail" class="form-control" ng-required="true" />
    </div>

    <input type="submit" class="btn btn-primary" value="Send E-mail" ng-disabled="formSendEmail.$invalid" />
</form>

就在该代码上方,我有另一个名为formCreateItinerary 的表单,我将ng-disabled 更改为指向该表单;按钮的启用和禁用有效。 我也用过这段代码:

<input type="submit" class="btn btn-primary" value="Send E-mail" ng-disabled="visitorEmailForSendEmail == undefined || visitorEmailForSendEmail == ''" />

使用此代码,按钮被禁用并且不启用。你能帮忙吗?

【问题讨论】:

  • ng-disabled 作用于布尔值
  • 是的,我知道。如果我的输入有效,则应返回 true,否则返回 false。
  • 您的意思是 ng-disabled="formSendEmail.$invalid" 正在工作,但 ng-disabled="visitorEmailForSendEmail == undefined || visitorEmailForSendEmail == ''" 不工作。对吗?
  • ng-disabled="visitorEmailForSendEmail == undefined || visitorEmailForSendEmail == ''" 使按钮被禁用,即使输入元素有效或表单有效。
  • @stackquestions 你需要ng-model。考虑将value="{{visitorDetail2.EmailAddress}}" 更改为ng-model="visitorDetail2.EmailAddress" 或类似的东西

标签: angularjs


【解决方案1】:

尝试将value="{{visitorDetail2.EmailAddress}}" 更改为ng-model="visitorDetail2.EmailAddress"

<input type="email" ng-model="emailAddress" ng-change="validateEmail(emailAddress)" id="visitorEmailForSendEmail" name="visitorEmailForSendEmail" class="form-control" ng-required="true" />
<button ng-disabled="disableButton">button</button>

 $scope.validateEmail=function(email) {
       if(!validateEmail(email)){
            $scope.disableButton=true;
               }else{
            $scope.disableButton=false;
        }

  }

 function validateEmail(email) {
     var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
  }

【讨论】:

    猜你喜欢
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多