在缓存中输入文本?

时间:2012-07-26 08:05:53

标签: javascript jquery browser web validation

我正在使用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()的文本时,它仍然包含旧文本。

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用此解决方案可以解决问题。

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

jquery: How to completely remove a dialog on close

此链接显示我的意思。