所以我正在为学校开发一个JS项目,我有一个表单,用户输入一个问题中的力量,一旦进入循环,就会为每个力创建新的字段。我有那个部分,但我有一个问题是存储来自这些新字段的文本输入。我正在使用.on函数,用户必须单击一个按钮,然后根据单击按钮的id,创建一个数字,用于强制数组。然后输入被认为是被读入数组,但它只是不工作,它让我疯狂。有任何想法吗?提前谢谢。
function forceRecording(numofforces){
for(var i =0; i<numofforces; i++){
$('#button1').after("<tr><td>Force DFO " + i +":</td><td><form><input type='text' name='lengthMeasure_'/></form></td><td><div class='button' id='lengthButton_"+i+"'>Add!</div></td></tr>")
$('#button2').after("<tr><td>Force " + i +":</td><td><form><input type='text' name='forceMeasure_'/></form></td><td><div class='button' id='forceButton_"+i+"'>Add!</div></td></tr>")
}
};
$("button[id^='forceButton']").on("click",function(){
var num = parseInt($(this).attr("id").split("_")[1]);
forces[num] = $('input[id=forceMeasure_'+num+']').val();
$('#button1').after('<td>'+forces[num]+'</td>');
});
正如你所看到的那样,我暂时在我的表中添加了另一列,只是为了检查力是否实际指向数组,但是当我运行它时,没有任何新的弹出。
答案 0 :(得分:1)
我很确定你现在已经解决了这个问题。但我碰巧遇到了这篇文章,并认为答案可以帮助未来的读者。
您的代码中有三个问题阻止它工作,它们如下:
$("button[id^='forceButton']")
代替$(".button[id^='forceButton']")
。请注意.
之前的button
。如果没有.
,jQuery会查找button
标记,其中id
标记为forceButton
,而有问题的标记为div
class
button
{1}}。$('input[id=forceMeasure_'+num+']').val();
用于获取文本框值,但您的input
字段没有任何id
。它只有name
,因此请使用$('input[name=forceMeasure_' + num + ']').val();
。input
字段设置为<input type='text' name='forceMeasure_'/>
。请注意,forceMeasure_
之后的计数部分丢失。应该是<input type='text' name='forceMeasure_" + i + "'/>
。如上所述进行所有三个更改,代码工作正常。
Click here有关工作代码的示例演示。