页面刷新后输入字段保留其值,如何防止?

时间:2011-03-31 07:01:02

标签: html jsp

<table id="post">
    <tr>
        <td style="font-size: 20px;">Post Your comment</td>
    </tr>
    <tr>
        <td>Name:</td>
        <td><input type="text" id="username" name="username"></td>
    </tr>
    <tr><form id="postform" action="" method="post" name="form">
        <td>Type your message here:</td>
        <td><textarea name="text" id="text" rows="5" cols="40"></textarea></td>
    <tr>
        <td><input type="hidden" id="pageid" name="pageid" value="20"></td>
    </tr>
    <tr>
        <td><input id="submit" type="submit" value="Post Comment"  name="submit" style="width:auto;"/></td>
    </tr>
    </form>
    </tr>
</table>

页面在刷新后保留在textbox和textarea中的值。任何人都建议我克服它的方法吗?

2 个答案:

答案 0 :(得分:8)

这些值仅由客户端(webbrowser)根据客户端历史记录自动填充。您需要将autocomplete="off"添加到表单或您要将其关闭的各个输入字段。

<form autocomplete="off">
    ...
</form>

<form>
    <input autocomplete="off" />
    <input />
    <input autocomplete="off" />
    ...
</form>

不需要讨厌的JS黑客攻击,这可能不适用于所有环境。

另见:


对具体问题

无关,您的HTML结构远非有效。我建议您将页面通过http://validator.w3.org并相应地修正错误/警告。

答案 1 :(得分:2)

我认为这是一个浏览器,而不是代码。

但是,如果要在页面加载时覆盖默认行为,请尝试运行(jQuery):

$(function(){
    $( 'textarea, input[type=text]' ).val('')
});

或(纯Javascript):

var load = function()
{
    document.forms[0].elements["username"].Value =
        document.forms['postform'].elements["text"].Value = '';
}

在您网页的body标记中添加:onLoad=load()