У меня есть веб-страница с вводом текста, на котором пользователь вводит текст. На странице есть скрытый элемент ввода, в котором хранятся отправленные значения, поэтому, поскольку пользователь продолжает вводить значения, они будут добавлены к скрытому элементу ввода, затем я использую сохраненное здесь значение для вывода всех значений, введенных пользователю, см. код ниже

<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
Ruth 25 Авг 2010 в 17:15

2 ответа

Лучший ответ

Я не уверен, почему IE7 так себя ведет ... но мне не нравится идея полагаться на какой-либо браузер для последовательного или надежного сохранения значения поля формы.

Храните значения в файле cookie вместо скрытого элемента.

http://www.quirksmode.org/js/cookies.html

2
David Murdoch 25 Авг 2010 в 13:23

Я думаю, что это больше похоже на функцию браузеров, от которой не стоит зависеть. Скорее используйте файлы cookie или переменные сеанса, чтобы сохранить поля.

2
yan.kun 25 Авг 2010 в 13:22