AngularJS:启用表单输入更改按钮
AngularJS: enable button on form input change
我有一个应用程序,在长格式页面中有很多设置。您需要转到页面以查看当前设置或更新这些设置。
我想这样做,只有当有人真正更改了当前输入时,"更新"按钮才会启用。
我天真的方法是在每个设置enableButton标志的输入中添加一个ng-change属性
<form name='form' ng-submit="submit()">
<input type="sometype" ng-model='something1' ng-change="formChanged=true"></input>
...
<input ng-model='somethingN' ng-change="formChanged=true"></input>
<button ng-disabled="!formChanged" type="submit" />
</form>
但这似乎是乏味和重复的(我们有很多选择),并且希望有一些简单的东西(比如"form.$hasChanged"…)
您应该在表单控制器对象上使用内置的angular $dirty
属性,而不是设置任何表单输入的标志n更改。它告诉用户是否与表单的元素进行了交互。
<form name='form' ng-submit="submit()">
<input name="some1" type="sometype" ng-model='something1' ></input>
...
<input name="some2" ng-model='somethingN' ></input>
<button ng-disabled="!form.$dirty" type="submit" />
</form>
使用$pristine
标志可以进行
<button ng-disabled="form.$pristine" type="submit" />
类似地,如果表单上有验证器,您也可以使用$valid
属性,例如,如果表单无效或原始,则禁用按钮
<button ng-disabled="form.$pristine|| form.$invalid" type="submit" />
相关文章:
- 点击按钮输入不起作用
- JavaScript按钮/输入/函数,字符串反转
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 如何从页面中获取所有内容,包括通过按钮输入的值
- 为按钮输入键
- Chrome应用程序在Webview中的按钮/输入上添加点击事件
- 如果用户更改下拉选择,jQuery将删除单选按钮/输入选项
- 如何在选中单选按钮(输入)时触发事件
- 如何将按钮/输入保留在图像下方
- 在条件jquery上启用按钮/输入区域
- 根据选定的单选按钮输入显示/隐藏 DIV
- 点击按钮输入在 Chrome 中不起作用
- 如何使按钮(输入类型=“提交”)在单击时消失
- 按钮输入上的 CSS 取消了 jQuery 中禁用的 prop 属性
- 如何获取按钮输入以显示在文本区域
- jQuery - 从按钮组中获取活动按钮(输入类型 = “radio”)
- 如何将字符串转换为来自按钮输入的 Int
- 根据单选按钮输入将表单发送给不同的收件人
- 单选按钮输入控制客户端验证
- 多个按钮输入到自己的文本框在同一页,