2013-07-10 22 views
1

因此,我正在爲學校的JS項目工作,在這裏我有一個用戶輸入問題中的力量數量的表單,一旦進入循環將爲每個力創建新的字段。我有這部分,但我有一個問題,存儲每個這些新字段的文本輸入。我正在使用.on函數,其中用戶必須單擊一個按鈕,然後根據單擊的按鈕的ID爲force數組創建一個數字。然後輸入被認爲是讀入數組,但它只是不工作,它驅使我瘋了。有任何想法嗎?提前致謝。jQuery表和存儲值問題

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

我可以建議把你的代碼放在[jsfiddle](http://jsfiddle.net/)中。當其他編碼人員可以使用它(全部)時,您可以快速獲得解決方案。 – Grallen

回答

1

我很肯定你現在已經解決了這個問題。但我碰巧遇到這個帖子,認爲答案可以幫助未來的讀者。

有在你的代碼,使其無法工作的三個問題,並有如下幾點:

  1. $("button[id^='forceButton']")代替$(".button[id^='forceButton']")。請注意0​​之前的.。如果沒有.,jQuery將查找button標籤,idforceButton,而所涉及的標籤爲divclassbutton
  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 + "'/>

如上所述進行所有三項更改,代碼工作正常。

Click here有關工作代碼的示例演示。