<input type="text">
元素的方法表单重置(通过 <input type="reset">
或 form.reset()
方法)会将表单中的所有输入元素恢复为它们的初始值(即页面加载时的值)。要防止特定文本输入框被重置,需要理解表单重置的工作原理。
document.querySelector('form').addEventListener('reset', function(e) {
e.preventDefault(); // 阻止默认重置行为
// 然后手动重置除特定输入框外的其他字段
const inputs = this.querySelectorAll('input:not(.no-reset), select, textarea');
inputs.forEach(input => {
if (input.type !== 'reset' && input.type !== 'submit' && input.type !== 'button') {
input.value = input.defaultValue;
}
});
});
document.querySelector('form').addEventListener('reset', function(e) {
const preservedInput = document.getElementById('preserveMe');
const savedValue = preservedInput.value;
// 允许默认重置行为
setTimeout(() => {
preservedInput.value = savedValue;
}, 0);
});
document.getElementById('customResetBtn').addEventListener('click', function() {
const form = document.querySelector('form');
const inputs = form.querySelectorAll('input:not(.preserve-on-reset), select, textarea');
inputs.forEach(input => {
if (input.type !== 'reset' && input.type !== 'submit' && input.type !== 'button') {
input.value = input.defaultValue;
}
});
});
如果只是不想让用户意外重置表单,可以考虑:
没有搜到相关的文章