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