将HTML表单条目传递到Javascript数组,然后写入客户端cookie?

时间:2009-10-30 00:01:48

标签: javascript html forms cookies

我正在构建一个测试用例JS应用程序,这是非常基本的,但遇到了一些问题。

我正在尝试使用HTML表单为用户输入一个数字,然后将其写入Javascript数组。然后,用户可以选择将相同的数组写入本地(客户端)cookie。 (我理解这个的安全含义 - 它是一个测试用例而不是商业用途。)

但是,我无法建立连接 - 如何捕获HTML条目,按'submit'将其发送到JS数组,然后用户可以按下不同的'submit'来写入数组到文本文件?

如果有人可以提供帮助,我会很感激,因为它已经快6个小时了,而且不再有趣了。

2 个答案:

答案 0 :(得分:1)

要阅读数据,请使用以下代码:

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(然后用户必须手动命名该文件)。

答案 1 :(得分:0)

在表单上添加

   <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;
}