正在 jQuery 中保存用户输入?

Saving user input in jQuery?

$(document).ready(function () {
    var userSites = newArray();
    var max_fields = 100; //maximum input boxes allowed 
    var wrapper = $(".input_fields_wrap"); //fields wrapper
    var add_button = $(".add_field_button"); //Add button ID

    var x = 5; //initial text box count
    $(add_button).click(function (e) { //on add input button click
        e.preventDefault();
        if (x < max_fields) {
            x++; //text box increment
            $(wrapper).append('<div><input type="text" name ="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
        }
    });
    $(wrapper).on("click", ".remove_field", function (e) { //user click on remove text
        e.preventDefault();
        $(this).parent('div').remove();
        x--;
    })
});

我有这段代码,因为我想要大量的用户输入。但是,一旦用户输入了这些东西,我该如何将其保存到数组中呢?那可能吗?我想将它保存到一个数组中,我可以从 java applet 访问它,这也可能吗?

在你们其中一个脚本标签中创建一个 Array 对象:

<script type="text/javascript" >
   var myArr=new Array();
</script>

现在将 onchange 添加到您的输入中同时更新 myArr :

$(wrapper).append('<div><input type="text" name ="myText'+x.toString()+'" onchange="myArr.push(this.value);document.getElementById('myArrInput').value=JSON.stringify(myArr);" /><a href="#" class="remove_field" onclick="myArr['+x.toString()+'].value=null;document.getElementById('myArrInput').value=JSON.stringify(myArr);" >Remove</a></div>'); 

将此 hiddenField 添加到您的页面以将 myArr 作为 JSON 字符串发送给您的小程序:

<input id="myArrInput" type="hidden" name="myArray" value="" />

在服务器中,您必须将 myArray Json 字符串转换为对象。

However, now that the user has input this stuff, how do I save this into an array? Is that possible? I want to save it into an array that I can access from a java applet?

提交表单时,事件处理程序 collectData 收集每个 <input> 中的文本并使用 push 方法填充数组。然后将该数组存储在隐藏的 <input> 中,然后通过表单提取数据,然后将其发布到服务器。

我对 Java applet 了解不多,但我已经为您介绍到这里了。我建议你在一个新问题中询问 Java 。您的标签具有 JavaScript/jQuery 性质。

我的演示实际上是在测试服务器上运行的,因此一旦提交,服务器将使用发布到它的数据进行响应。

这个有效:http://plnkr.co/edit/seD0L3oI7dTnXQrrFZPl?p=preview

添加代码

  form.addEventListener('submit', collectData, false);

  function collectData(e) {
    var userSites = [];
    var cache = document.getElementById('cache');
    var z = 0;
    while (z < max_fields) {
      z++;
      var data = inputs[z].val();
      userSites.push(data);
    }

    e.stopPropagation();
    cache.value = userSites;
  }

});