Javascript忽略<;选择>;标签
我有一个javascript,它会禁用submit按钮,除非原始表单数据发生更改,我希望脚本忽略Javascript忽略<;选择>;标签,javascript,jquery,Javascript,Jquery,我有一个javascript,它会禁用submit按钮,除非原始表单数据发生更改,我希望脚本忽略标记的更改。请帮我做到这一点 守则: $(function(){ $('form') .each(function(){ $(this).data('serialized', $(this).serialize()) }) .on('change input', function(){ $(thi
标记的更改。请帮我做到这一点
守则:
$(function(){
$('form')
.each(function(){
$(this).data('serialized', $(this).serialize())
})
.on('change input', function(){
$(this)
.find('input:submit, button:submit')
.attr('disabled', $(this).serialize() == $(this).data('serialized'))
;
})
.find('input:submit, button:submit')
.attr('disabled', true)
;
});
谢谢您可以在序列化时筛选select标记
$(function(){
$('form')
.each(function(){
$(this).data('serialized', $(this).not('select').serialize())
})
.on('change input', function(){
$(this)
.find('input:submit, button:submit')
.attr('disabled', $(this).not('select').serialize() == $(this).not('select').data('serialized'))
;
})
.find('input:submit, button:submit')
.attr('disabled', true)
;
});
这段代码现在所做的是
$(this)
获取表单中的所有内容.not('select')
,它表示-获取表单中除select标记之外的所有内容.serialize()
,它会显示-对表单中的元素进行快照,除了select
标记您可以检查事件是否由
select
元素触发。如果是,请阻止代码的进一步执行
.on('change input', function(event) {
if (event.target.nodeName !== 'SELECT') {
$(this)
.find('input:submit, button:submit')
.attr('disabled', $(this).serialize() == $(this).data('serialized'));
}
})
.on('change','input',function(){
可能会有所不同。您好。谢谢您的回复。我尝试了您的代码,但在更改选择标记的值时,提交按钮仍会解锁以提交。可能是因为您需要放弃选择选项-。而不是('select optoin'))