jQuery表和存储值问题

时间:2013-07-10 08:18:41

标签: javascript jquery html input

所以我正在为学校开发一个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>');
});

正如你所看到的那样,我暂时在我的表中添加了另一列,只是为了检查力是否实际指向数组,但是当我运行它时,没有任何新的弹出。

1 个答案:

答案 0 :(得分:1)

我很确定你现在已经解决了这个问题。但我碰巧遇到了这篇文章,并认为答案可以帮助未来的读者。

您的代码中有三个问题阻止它工作,它们如下:

  1. $("button[id^='forceButton']")代替$(".button[id^='forceButton']")。请注意.之前的button。如果没有.,jQuery会查找button标记,其中id标记为forceButton,而有问题的标记为div class button {1}}。
  2. $('input[id=forceMeasure_'+num+']').val();用于获取文本框值,但您的input字段没有任何id。它只有name,因此请使用$('input[name=forceMeasure_' + num + ']').val();
  3. input字段设置为<input type='text' name='forceMeasure_'/>。请注意,forceMeasure_之后的计数部分丢失。应该是<input type='text' name='forceMeasure_" + i + "'/>
  4. 如上所述进行所有三个更改,代码工作正常。

    Click here有关工作代码的示例演示。