【问题标题】:Array Doesn't Push Elements Node.js数组不推送元素 Node.js
【发布时间】:2017-11-16 17:39:11
【问题描述】:

我正在创建一个简单的表单,允许用户提交显示在页面上的输入。每个输入一个接一个地添加,因此如果用户输入“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 文件都会刷新并且页面会重新加载,从而清除数组。

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

【问题讨论】:

  • <input type="submit"> 将刷新页面。尝试使用按钮。
  • 我的按钮类型是提交,而不是我的输入类型。正在提交的按钮类型是否也会刷新?

标签: javascript html arrays node.js


【解决方案1】:

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

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

【讨论】:

  • 我的输入类型是文本。我的按钮类型是提交。
  • 提交类型正是导致刷新的原因。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    要持久化数据,您可以将数据保存在 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'));
       }
    

    【讨论】:

      【解决方案4】:

      您已经初始化了一个名为 addToList 的 Function 实例的引用,但从未调用过此 Function。

      在 addToList 函数中添加一个 console.log,你会看到这个函数永远不会被调用。

      相反,您需要声明函数,然后通过使用括号调用它来执行它:addToList()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多