0

我正在type="text"使用 JavaScript (jQuery) 验证一些输入 () 框。

它们位于$('').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()它的文本时,其中仍然包含旧文本。

有人知道为什么会这样吗?

我认为这与缓存有关,但我不确定,所以我在问这个问题。

4

2 回答 2

0

这个问题可以用这个解决方案解决。

主要问题是当您没有正确关闭对话框并将其从 DOM 中删除时,您会遇到一些问题......

jquery:如何在关闭时完全删除对话框

这个链接说明了我的意思。

于 2012-08-04T12:17:30.333 回答
0

form_element.reset()打开对话框或发送数据后调用。

于 2012-07-26T08:21:24.577 回答