数组不推送元素Node.js.

时间:2017-11-16 07:09:20

标签: javascript html arrays node.js

我正在创建一个简单的表单,允许用户提交页面上显示的输入。每个输入都是在另一个之后添加的,因此如果用户输入“1”并单击“提交”,则页面上将显示“1”。如果用户然后输入“2”,那么“2”将显示在“1”的正下方。 “1”未被删除。

我将用户输入保存到数组中,我将迭代该数组以在页面上呈现用户输入。我遇到的问题是我的数组中没有任何东西被保存,所以当我尝试将用户输入呈现到页面上时,没有任何渲染。

    /* This is pseudocode */
    var list = [];

    for each value in list
        add value to page

    addToList = function() {
        var value = document.getElementById("userEntry").value;
        list.push(value);
    }

只要用户单击“提交”,就会调用addToList函数。我正在使用Node.js,我觉得这不起作用,因为每次提交和页面重新加载,清除数组时,JavaScript文件都会刷新。

如果我希望我的数组保存用户输入的值,我该怎么办。

4 个答案:

答案 0 :(得分:0)

尝试使用JQuery,然后使用" $('#userEntry')。val()" 和一个按钮(/元素)

$('#button').click(() => { 
    list.push($('#userEntry').val());
})"

答案 1 :(得分:0)

要保留数据,您可以将数据保存在localStorage中。

以下是你可以做到的。

  /* This is pseudocode */
    var list = [];

    for each value in list
        add value to page

    addToList = function() {
        var value = document.getElementById("userEntry").value;
        list.push(value);
    }

   onSubmit = function() {
        //localStorage.setItem('key', 'value');
        localStorage.setItem('myList', JSON.stringify(list));
   }

   getList = function() {
        //localStorage.getItem('key');
        list = JSON.parse(localStorage.getItem('myList'));
   }

答案 2 :(得分:0)

@Lepanto是对的。 <input type="submit">将刷新页面,您将失去您的状态。试试这个:

<button onclick="addToList" >submit</button>

答案 3 :(得分:0)

您已使用名称addToList初始化对Function实例的引用,但从未调用此函数。

在addToList函数中添加一个console.log,您将看到永远不会调用此函数。

相反,您需要声明Function,然后通过括号括起来执行它:addToList()