在表单上使用ng-disabled和$ invalid时是否需要ng-model?

时间:2013-05-20 13:25:06

标签: angularjs

我正在使用AngularJS并且有一个表单,如果某些字段未填写,我希望禁用“提交”按钮。

标准方式似乎如下:

<form ng-app name="myForm">
    <label>Name</label>
    <input type="text" name="name" ng-model="form.name" required>
    <input type="submit" ng-disabled="myForm.name.$invalid">
</form>

http://jsfiddle.net/YMSRU/

但是,如果我从输入字段中省略模型,则验证不起作用,我的输入字段上不需要任何模型(我使用ngUpload指令提交表单,因此实际上它已发送到表单操作中一个iframe)。

是否有任何解决方案或是否应该添加随机模型以使验证工作?这似乎是一个糟糕的解决方法。

2 个答案:

答案 0 :(得分:3)

您可以在表单级别执行invalid检查,然后无需为每个输入定义模型:

<form ng-app name="myForm">
    <label>Name</label>
    <input type="text" name="name" required>
    <input type="submit" ng-disabled="myForm.$invalid">
</form>

答案 1 :(得分:0)

您在测试输入标记处缺少模型:ng-model =“form.name”