Флажки и опции <select>не сохраняются в локальном хранилище HTML 5 - PullRequest
1 голос
/ 29 сентября 2011

Я пришел к неожиданному выводу относительно сохранения локального хранилища HTML5 и вводимых данных. Когда я использую или , данные сохраняются в локальном хранилище и при загрузке страницы загружаются обратно в поля одним нажатием кнопки. Но когда я использую опции type = "radio" type = "checkbox" или

Такое поведение спроектировано, и я толкаю кирпичную стену, пытаясь заставить ее работать, или это мой сценарий элемента формы, который нуждается в капитальном ремонте? Если это так, то вы можете ответить «да» Если нет, вы можете проверить подробности моей работы ниже, чтобы проверить ее и оставить отзыв.

Пользователь вводит данные в текстовые поля следующим образом:

<textarea name="s1frontTowerShockMtgOther" id="s1frontTowerShockMtgOther" cols="20" rows="4">

Затем они нажимают на кнопку сохранения, закодированную так:

<input type="button" value="Save Settings" onclick="persistData()" style="background-color:red; font-weight:bold">

Страница Javascript делает свое волшебство:

function persistData()
            {
                if (html5StorageSupported())
                {
                    var s1frontTowerShockMtgOther = document.form1["s1frontTowerShockMtgOther"].value;
                    var storageIndex = "practicelog.html.s1frontTowerShockMtgOther";
                    localStorage[storageIndex] = s1frontTowerShockMtgOther;

                document.form1.numStored.value = determineNumberStoredElements();

                }
            }

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

<input class="loadButton" type="button" value="Load Data First" onclick="loadData()">

Javascript называется:

function loadData()
        {
         document.form1["s1frontTowerShockMtgOther"].value = localStorage["practicelog.html.s1frontTowerShockMtgOther"];

         } 

Вот и все. Следующее не работает:

<select size="1" name="frontTowerMtgShock" id="frontTowerMtgShock">
        <option value="">Tap to choose</option>
        <option value="0 spacers">3-outer</option>
        <option value="1 spacer">2-middle</option>
        <option value="2 spacers">1-inner</option>
        <option value="other">See notes</option>
    </select>

Следующий тип = "флажок" не работает. Это не работает, если «флажок» был заменен на «радио» либо:

<input type="checkbox" name="s1frontTowerMtgShock3" id="s1frontTowerMtgShock3" value="3-outer">

Я делаю этот проект для iPhone с HTML, CSS и Javascript через интеграцию PhoneGap 1.0.

1 Ответ

0 голосов
/ 29 сентября 2011

У меня нормально работает следующее:

function persistData()
{
    var s1frontTowerShockMtgOther = document.form1["s1frontTowerShockMtgOther"].value;
    var storageIndex = "practicelog.html.s1frontTowerShockMtgOther";
    localStorage[storageIndex] = s1frontTowerShockMtgOther;
    storageIndex = "practicelog.html.frontTowerMtgShock";
    var frontTowerMtgShock = document.form1["frontTowerMtgShock"].value;
    localStorage[storageIndex] = frontTowerMtgShock;
}

function loadData()
{
     alert(localStorage["practicelog.html.frontTowerMtgShock"]);
     document.form1["frontTowerMtgShock"].value = localStorage["practicelog.html.frontTowerMtgShock"];
 } 

Проверяли ли вы дважды ключи хранилища при установке и получении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...