【发布时间】:2013-05-16 16:53:10
【问题描述】:
这是我正在使用的代码:
$('form').bind('keyup change', function(){
默认情况下,提交按钮设置为禁用,如果输入文本字段、单选按钮检查状态或下拉选择值发生更改,则必须通过删除禁用属性将按钮设置为启用。
我的最终目标:
编辑:如果将任何内容更改回其默认值,则提交按钮应通过 prop('disabled', true); 设置为禁用; - 需要一些方法来跟踪每一个变化。
================================================ =====
示例: 转到 Twitter,然后登录,从下拉菜单中选择设置。在帐户页面中,更改您的用户名(只需添加一个额外的字符),然后向下滚动,将复选框设置为选中,然后更改您的国家/地区选择。
底部的按钮会启用,返回并取消之前勾选的复选框,底部的按钮将保持启用状态,
滚动到顶部将您的用户名更改回原来的样子,向下滚动按钮以保存更改仍将启用,转到国家列表并将其更改回您以前的名称,现在终于向下滚动:保存更改按钮将被禁用。
================================================ =====
编辑:这看起来很相似,What is the best way to track changes in a form via javascript?
引用:“您可以默认禁用它,并让 JavaScript 处理程序监视更改事件的输入以启用它。也许渲染一些隐藏字段或直接渲染 JavaScript 值以存储“原始”,并且在这些更改事件上,对照原始值检查当前值,以确定是否应启用或禁用该按钮。- David Jan 18 日 15:14" (Enable 'submit' button only if a value in the form has been changed)。
【问题讨论】:
-
您想使用
carl或johnson之类的默认值吗?占位符怎么样? -
@PSL:这里不是默认值,方法如下:名字:Erik,更改为其他名称,然后按钮设置为启用,但如果用户返回并将名字更改为 Erik - 从一开始按钮就应该被禁用,因为他从未做过任何改变。只是为了演示而添加了默认值。
-
默认值实际上可以是任何值,因为它们是从数据库加载的......
-
如何拥有一个保存默认值的 data-default 属性 - 然后检查输入的更改/keyup 是否有任何当前值已更改?
-
@JohnSmith 我只需要做同样的事情。只需几行代码即可实现。 stackoverflow.com/a/24790754/1850421