Angularjs ng仅在纸质输入表单有效时单击

Angularjs ng仅在纸质输入表单有效时单击,angularjs,polymer,Angularjs,Polymer,我是网络新手,无法理解这一点: 我有一个表单,希望在表单无效时禁用“提交”按钮。 我尝试过使用X.$valid和X.checkValidity()但没有任何帮助。我也看过铁制表单的例子和文档,但我看不到 我想我的问题是使用Angular+聚合物,但我找不到一个解决方案来获得我想要的行为 这是我的密码: {{::tr('忘记密码')} {{::tr('Sign-in')} 试试: {{::tr('忘记密码')} {{::tr('Sign-in')} 如果我添加以下代码,它可以工作,但我认为将

我是网络新手,无法理解这一点:

我有一个表单,希望在表单无效时禁用“提交”按钮。 我尝试过使用X.$valid和X.checkValidity()但没有任何帮助。我也看过铁制表单的例子和文档,但我看不到

我想我的问题是使用Angular+聚合物,但我找不到一个解决方案来获得我想要的行为

这是我的密码:


{{::tr('忘记密码')}
{{::tr('Sign-in')}
试试:


{{::tr('忘记密码')}
{{::tr('Sign-in')}

如果我添加以下代码,它可以工作,但我认为将该逻辑放在控制器中是不正确的。在html中:

<paper-button id="submitionButton" raised type="submit" ng-disabled="!formValidity()">
    {{::tr('Sign in')}}
</paper-button>

对于$valid或$invalid,我得到一个“undefined”。当我尝试此“ng disabled=“!loginForm.checkValidity()””时,该按钮被禁用,但在我填写表单时未启用(即使在控制台中该点运行checkValidity()时结果为True),您也可以共享控制器代码。我不确定出了什么问题。$valid:如果包含的所有表单和控件都有效,则为True$无效:如果至少有一个包含控件或窗体无效,则为True。您无需编写ng click=“loginForm.$valid&&login()”尝试编写ng click=“login()”ng disable=“loginForm.$invalid&&loading”尝试了ng disable=“loginForm.$invalid”,但它不起任何作用。不确定原因,但未定义$valid/$invalid。如果我执行ng disabled=“!loginForm.CHECKVALITY()”操作,则在页面加载时该按钮将被禁用,但当我更改输入以通过验证时,该按钮将保持禁用状态(即使CHECKVALITY()返回TRUE)。如果您已将id作为loginForm,则可以使用并删除novalidate。您可以使用“loginForm.CHECKVALITY()”,希望您已将jQuery包含在项目中。(或)。您可以使用loginForm解决此问题。$valid或$invalid
<paper-button id="submitionButton" raised type="submit" ng-disabled="!formValidity()">
    {{::tr('Sign in')}}
</paper-button>
$scope.formValidity = function () {
    return loginForm.checkValidity();
};