我有一个网页,带有文本输入,用户可以输入一些文字。页面上有一个隐藏的输入元素,用于存储提交的值,因此当用户继续输入值时,它们将被附加到隐藏的输入元素,然后我使用此处存储的值输出输入给用户的所有值,请参阅
下面的代码<SCRIPT TYPE="text/javascript">
function get_val(val)
{
var name = val.input1.value;
if(document.getElementById("input2").value != "")
{
var new_name = document.getElementById("input2").value;
name = new_name.concat(" AND " +document.getElementById("input1").value);
document.getElementById("input2").value = name
alert(name);
history.go(0); //this will be explained below
}
if(document.getElementById("input2").value == "")
{
document.getElementById("input2").value = name;
}
}
</SCRIPT>
<h3>Enter word</h3>
<form id="frm1" name="frm1">
<input id="input1" name="input1" type="text" size="40" value="" />
<input id="input2" name="input2" type="hidden" size="40" value=""/>
<input id="button" name="button" type="button" value="get name" OnClick="get_val(this.form)"/>
</form>
现在请注意history.go(0);我已经把它放进去展示我的问题了。它在大多数浏览器中都能正常工作,除了IE版本7.0.5730.1.3中的有时,当重新加载页面时,隐藏的输入元素被清除,从而导致不良结果。
有没有人知道为什么偶尔会出现Internet Explorer 7的原因?
答案 0 :(得分:2)
我认为这更像是浏览器的功能,你不应该依赖。而是使用cookie或会话变量来保留字段。
答案 1 :(得分:2)
我不确定为什么IE7会这样做...但我不喜欢依赖任何浏览器来一致或可靠地保存表单字段值的想法。
将值存储在cookie中而不是隐藏元素中。