значение списка выбора не остается постоянным после вызова другой html-страницы

видите, у меня есть одна форма, которая содержит выпадающий список выбора и 2 текстовых поля. В одном текстовом поле нажмите кнопку, я перехожу на одну страницу, содержащую список контактов. я добавляю значение с этой страницы и снова возвращаюсь на свою старую страницу. Поэтому после этого независимо от значения, которое я изменил в раскрывающемся списке выбора, прежде чем оно будет изменено на значение по умолчанию, поскольку 1. оно не остается таким же, как раньше. мой код. это моя html-форма.

   <body onload="main();">
        <select id="privacy" onchange="getPri(this)">
                    <option value="1" >1</option>
                    <option value="2" >2</option>
                  </select>
                  <input type="text" value="choose contacts" id="to" onClick="window.location='contact.html';">
                  </input>

а это мой js

function getPri(sel) { var value = sel.value;

if(value=="2")
{ 

$("#to").show();
}
else
{
 $("#to").hide();

}}

где, как и в contact.html, у меня есть список контактов, я добавляю один из контактов из него и добавляю его в то же текстовое поле, для которого есть идентификатор.

 function main()
              {
    var contact = "";
              if ( sessionStorage.getItem("contact") ) {
              contact = sessionStorage.getItem("contact");

              $("#to").val(postneedcontact);
}      

Теперь проблема заключается в том, что предположим, что я выбрал значение 2, тогда появится текстовое поле контакта. Теперь, после нажатия на это, я могу добавить это значение, и все работает правильно. Проблема в том, что значение, которое я выбрал, теперь снова изменилось на 1 .что я хочу, чтобы он установил то, что было ранее выбрано мной как 2, потому что, если выбрано 1, текстовое поле контакта будет скрыто, как показано в коде. Итак, какое-либо решение для этого?


person user3145095    schedule 30.11.2014    source источник


Ответы (2)


Предполагая, что контакт - это новая страница, почему бы вам не попытаться сохранить значение выбора поля выбора в каком-либо хранилище?

person Anand    schedule 30.11.2014

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

Обратите внимание, что это не будет работать в онлайн-редакторе, ему нужен браузер из-за локального хранилища браузера. Пожалуйста, запустите это в своем браузере.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>

    <script>
    var iVal;
    window.onload=function(){
        iVal=document.getElementById("privacy");
        iVal.selectedIndex=localStorage.getItem("PrivacyVal");
    };
        function getPri(){
            localStorage.setItem("PrivacyVal", iVal.selectedIndex);
        }
    </script>
    </head>
<body>
    <select id="privacy" onchange="getPri()">
            <option  >1</option>
            <option  >2</option>
            <option  >3</option>
            <option  >4</option>
    </select>

</body>
</html>
person Swapnil Motewar    schedule 30.11.2014
comment
Могу я узнать, какую версию браузера вы используете? - person Swapnil Motewar; 30.11.2014
comment
Пожалуйста, используйте обновленную версию браузера, и ваш браузер должен поддерживать HTML5. Я обновил приведенный выше код программой, которая отлично работает в моем браузере. - person Swapnil Motewar; 30.11.2014
comment
проблема заключается в том, что после выбора списка предположим, что я выбрал 2 в опции, тогда я перехожу на другую страницу. и после возврата назад это значение выбора снова по умолчанию равно 1, что является ошибкой для меня, потому что если я выберу 1, то это текстовое поле скроется, и я не нужно переходить на любую страницу. - person user3145095; 30.11.2014
comment
Выпадающий список назначается после загрузки страницы, поэтому любое назначенное нами значение не отражается, поэтому обновите выбор с помощью .selectmenu('refresh') stackoverflow.com/questions/9709182/ - person Swapnil Motewar; 01.12.2014