Передача записей HTML-формы в массив Javascript для последующей записи в файл cookie на стороне клиента? - PullRequest
0 голосов
/ 30 октября 2009

Я создаю немного JS-приложения для теста, что-то очень простое, но столкнулось с некоторыми проблемами.

Я пытаюсь использовать HTML-форму для ввода пользователем номера, который затем записывается в массив Javascript. Затем пользователь имеет возможность записать этот же массив в локальный (на стороне клиента) файл cookie. (Я понимаю последствия этого для безопасности - это тестовый пример, а не для коммерческого использования.)

Однако я не могу установить соединение - как я могу захватить HTML-запись, нажмите «submit», чтобы отправить ее в массив JS, где пользователь может затем нажать другой «submit», который запишет массив в текстовый файл?

Если кто-нибудь может помочь, я буду признателен, потому что прошло уже почти 6 часов, и это уже не смешно.

Ответы [ 2 ]

1 голос
/ 30 октября 2009

Чтобы прочитать данные, используйте такой код:

var data = new Array;

function readData() {
    var inputs = document.getElementsByTagName('input');
    for (i in inputs) {
        if (!isNaN(i - 0) && inputs[i].type == 'text') {
            data[i - 0] = inputs[i].value;
        }
    }
}

Запустите его с помощью кнопки ввода:

<input type="button" onclick="readData();" value="Read" />

Тем не менее, вы хотите, чтобы это был файл cookie, текстовый файл или что? Вот несколько возможных операторов в зависимости от того, что вы хотите:

alert(data.toString());
window.location.href = 'data:text/plain,' + escape(data.toString());
document.cookie = 'data=' + data.toString();

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

  • сделать это вручную после генерации
  • использовать какой-либо MIME-тип, такой как application / octet-stream, вместо text / plain (тогда пользователь должен будет назвать файл вручную).
0 голосов
/ 30 октября 2009

в форме добавить

   <form bla bla bla onsubmit="return catchThings()">
      <input name="test" id="test">
   </form>

с javascript, который вы можете сделать

function catchThings(){
     // get all the forms inputs by id
     // do things with arrays or whatever
     var example = document.getElementById("test").value;
     return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...