在jQuery中保存用户输入?

时间:2016-01-16 21:35:32

标签: javascript jquery user-input

$(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访问的数组中,这是否可能?

2 个答案:

答案 0 :(得分:0)

在您的一个脚本标记中创建一个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字符串发送到您的applet:

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

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

答案 1 :(得分:0)

  

但是,现在用户已输入此内容,如何将其保存到数组中?那可能吗?我想将它保存到一个我可以从java applet访问的数组中?

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

我对Java小程序了解不多,但我找到了这么远。我建议你在一个新问题中询问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;
  }

});