【问题标题】:Angularjs ng-disabledAngularjs ng-禁用
【发布时间】:2017-08-01 07:09:49
【问题描述】:

我有两个用于验证电子邮件和密码的输入。我可以看到以下作品的个人:

myForm.$error.required

使用所需输入值验证输入表单 和

myForm.email.$valid

验证我的正则表达式电子邮件

如果我要打印即 {{ with the above code}} 我可以看到验证输入及其正确性的布尔结果。 但是,当我在带有两个表达式的按钮上使用 ng-disabled 时,它不起作用,但如果我只用一个表达式放置 ng-disable,我可以看到它确实有效,但我无法同时放置两个表达式,即

<button type="submit" ng-disabled="myForm.$error.required && !myForm.email.$valid">Sign in</button>

目前,根据第一个表达式,结果为真,但我认为 && 意味着需要满足两个条件才能使结果为真? 可能是因为输出是 true + false = true 吗?

【问题讨论】:

  • 试试这个myForm.$error.required || !myForm.email.$valid
  • 那么,当myForm 包含一些与必填字段相关的错误,同时email 无效时,您希望禁用该按钮吗?
  • 使用 {{ myForm.$error.required && !myForm.email.$valid }} 调试语句。分解看看发生了什么

标签: javascript angularjs validation angular-validation angularjs-ng-disabled


【解决方案1】:

如果你想在整个表单无效时禁用按钮,你应该使用 ng-disabled="myForm.$invalid"。

如果您想在未提供电子邮件或电子邮件无效的情况下禁用该按钮,则应使用 ||而不是 && 所以按钮在这两种情况下都将被禁用。

【讨论】:

  • 这更像是一个评论而不是一个答案。
  • 并非如此,它是所需问题的替代方案,但仍然可以回答。
【解决方案2】:

true + false 不是true &amp;&amp; false,而是true || false

这就是为什么你没有得到正确的行为,所以:

<button type="submit" ng-disabled="myForm.$error.required || !myForm.email.$valid">Sign in</button>

【讨论】:

    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多