我正在使用JavaScript(jQuery)验证一些输入(type="text"
)框。
当您点击按钮时,它们位于$('').dialog()
框上。
当我第一次显示对话框时,我的验证码一切正常:
function verifyContactForm() {
formValid = true;
txtSubject = $('#txtSubject');
txtRoom = $('#txtRoom');
txtMessage = $('#txtMessage');
if (txtSubject.val() == "") {
formValid = false;
txtSubject.css('border-color', 'red');
}
else
txtSubject.css('border-color', 'lightgray');
if (txtRoom.val() == "") {
formValid = false;
txtRoom.css('border-color', 'red');
}
else
txtRoom.css('border-color', 'lightgray');
if (txtMessage.val() == "") {
formValid = false;
txtMessage.css('border-color', 'red');
}
else
txtMessage.css('border-color', 'lightgray');
return formValid;
}
在用户结束对话框并且一切都有效后,它会使用ajax调用将数据发送到服务器。
现在,当用户第二次打开对话框而不重新加载页面时,在我的文本元素中,旧文本仍然存在。文本未显示在输入框中,但是当我选择.val()
的文本时,它仍然包含旧文本。
有人知道为什么会这样吗?
我认为它与缓存有关,但我不确定所以我问这个问题。
答案 0 :(得分:0)
打开对话框或发送数据后调用form_element.reset()
。
答案 1 :(得分:0)
使用此解决方案可以解决问题。
主要问题是当你没有正确关闭对话框并从DOM中删除它时你会遇到一些问题......
jquery: How to completely remove a dialog on close
此链接显示我的意思。