gpt4 book ai didi

javascript - JQuery - 除非原始表单数据已更改,否则禁用提交按钮

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:12 26 4
gpt4 key购买 nike

我在这里找到了以下代码 ( Disable submit button unless original form data has changed ),它可以工作,但对于我来说,我无法弄清楚如何更改同一个提交按钮的属性、文本和 CSS。

我希望当按钮启用/禁用时文本、背景和悬停背景不同,并且还切换另一个 DIV 可见/隐藏。

$('form')
.each(function(){
$(this).data('serialized', $(this).serialize())
})
.on('change input', function(){
$(this)
.find('input:submit, button:submit')
.prop('disabled', $(this).serialize() == $(this).data('serialized'))
;
})
.find('input:submit, button:submit')
.prop('disabled', true);

有人可以提供 sample 吗?我没有头发可以拔了:-)

最佳答案

您复制的答案不是很好,因为 form 没有 changeinput 事件。 Form 元素则相反。因此,将事件绑定(bind)到表单中的实际元素上。其他一切看起来都不错,除了您需要存储存储/当前数据是否彼此相等的 state,然后采取相应的行动。看一下根据状态隐藏/显示 div 的演示。

$('form')
.each(function() {
$(this).data('serialized', $(this).serialize())
})
.on('change input', 'input, select, textarea', function(e) {
var $form = $(this).closest("form");
var state = $form.serialize() === $form.data('serialized');
$form.find('input:submit, button:submit').prop('disabled', state);

//Do stuff when button is DISABLED
if (state) {
$("#demo").css({'display': 'none'});
} else {
//Do stuff when button is enabled
$("#demo").css({'display': 'block'});
}

//OR use shorthand as below
//$("#demo").toggle(!state);
})
.find('input:submit, button:submit')
.prop('disabled', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input name="tb1" type="text" value="tbox" />
<input name="tb2" type="text" value="tbox22" />
<input type="submit" value="Submit" />
</form>

<div id="demo" style="margin-top: 20px; height: 100px; width: 200px; background: red; display: none;">Data isn't the same as before!</div>

剩下的可以通过 CSS 使用 :disabled 选择器 (CSS3) 或任何合适的方式来完成。

关于javascript - JQuery - 除非原始表单数据已更改,否则禁用提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32071618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com