下面是我使用的代码:
$('form').bind('keyup change', function(){
提交按钮默认设置为DISABLED,如果输入文本字段、单选按钮选中状态或下拉选择值发生变化,则必须通过删除禁用属性将按钮设置为ENABLED。
我的最终目标:
EDIT:如果将任何内容改回默认值,提交按钮应通过prop设置为禁用('disabled',true);- 需要一些方法来跟踪每一个变化。
***示例:***转到Twitter,然后登录,从下拉菜单中选择设置。在帐户页面中,更改您的用户名(只需添加一个额外字符),然后向下滚动,将复选框设置为选中,并更改您的国家选择。
- 底部的按钮将被启用,返回并取消选中您之前选中的复选框,底部的按钮将保持启用状态,*
- 滚动到顶部将您的用户名更改回原来的用户名,向下滚动按钮保存更改仍将启用,转到国家列表并将其更改回您以前的用户名,现在最后向下滚动:保存更改按钮将被禁用。*
====================================================
编辑:这看起来非常相似,What is the best way to track changes in a form via javascript?
引用:"您可以默认禁用它,并让JavaScript处理程序监视输入的更改事件以启用它。可以渲染一些隐藏字段或直接渲染JavaScript值以存储"原始值",并在这些更改事件上,根据原始值检查当前值以确定是否应该启用或禁用按钮。-David Jan 18 at 15:14"(Enable 'submit' button only if a value in the form has been changed)。
5条答案
按热度按时间vhipe2zx1#
我知道这是一个迟来的答案,但是这个方法使用的代码比公认的答案少得多,不需要字段ID,也不需要存储全局数组。
只需使用
.serialize()
来存储数据,并在每次更改时检查它是否匹配。http://jsfiddle.net/Pug3H/2/
slhcrj9b2#
您只需要保存原始值,然后在每次更改后检查它们。
示例:http://jsfiddle.net/justincook/42EYq/15/
JavaScript语言:
超文本:
dwthyt8l3#
@奈杰尔Angel答案的改进版:
wxclj1h54#
您可以添加一个数据属性来保存默认值-对于选中类型,您可以使用
0
表示未选中,使用1
表示选中然后在jquery中使用filter获取更改的内容
FIDDLE
wwwo4jvm5#
我试了这个代码:
而且它在文本输入、文本区域和选择上都能完美工作。但是当我上传一张图片时,例如用下面的输入:
图像出现,一切正常,但按钮没有变得活跃,并保持禁用状态,有没有人知道可以做些什么,使它的工作?