【发布时间】:2021-06-22 20:40:15
【问题描述】:
我有一个包含多个输入字段的表单。
如果表单的其中一个输入发生了更改,我想切换表单的 css 类,以便显示“亲爱的用户,请立即提交表单”之类的文本。
可选,但会很好:如果用户再次将输入字段更改为初始值,则应再次切换回该类,以便我可以隐藏文本(通过 css)
我不需要支持 IE,只需要支持现代浏览器。
文本的 CSS 可能如下所示:
form.unchanged div.submit-text {
display: hidden;
}
form.changed div.submit-text {
display: block;
}
我可以这样做:
function initChangeDetection(form) {
Array.from(form).forEach(el => el.dataset.origValue = el.value);
}
function formHasChanges(form) {
return Array.from(form).some(el => 'origValue' in el.dataset && el.dataset.origValue !== el.value);
}
来源:https://stackoverflow.com/a/52593167/633961
但这会在客户端造成过多的负载。
【问题讨论】:
-
在表单中添加一个
change事件监听器,它可以切换unchanged和changed类。 -
StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
-
您的表单中有哪些元素?它是可变的,或者您可以确定表单元素的类型吗?
标签: javascript css