2012-09-21 51 views
1

我有使用數組的名稱這樣的輸入的形式:jQuery的:陣列中的對象文本爲Ajax數據

<input type="text" name="answer[0]" /> 

那些工作精細當我做一個ajax後和序列化的數據形式。現在我正在嘗試將動態對象傳遞給jQuery ajax數據,該數據將模仿如果要序列化表單的結構。下面是我想要的,代碼:

function sliderCalc(){ 
     var step = jQuery('[name="step"]').val(); 
     var max = jQuery('[name="max"]').val(); 
     var min = jQuery('[name="min"]').val(); 
     var count = (max - min)/step; 
     var sliderData = {}; 
     for(i=0; i<=count; i++){ 
      var value = min + (step * i); 
      sliderData.answers[i] = value; // key => value created here 
     } 
     return sliderData; 
    } 

我得到這個錯誤:

遺漏的類型錯誤:無法設置屬性「0」的未定義

有沒有人有一個很好的解決方案爲了這?

+0

有什麼確切錯誤信息你正在得到? – Travesty3

+0

向底部添加了錯誤消息 – humdinger

回答

1

您需要創建答案性能第一的分配數組元素:

sliderData.answers = new Array(); 
+0

工作正常,謝謝!我想它會和var array [] =(1,2,3)一樣工作。 – humdinger

+0

更好地使用'[]''新陣列()' – Eric

0

這將是創建sliderData

var sliderData = { answers: [] }; 
    for(i = 0; i <= count; i++) { 
     var value = min + (step * i); 
     sliderData.answers[i] = value; 
    } 

完整代碼有道:

function sliderCalc() { 
    var 
     step = jQuery('[name="step"]').val(), 
     max = jQuery('[name="max"]').val(), 
     min = jQuery('[name="min"]').val(), 
     count = (max - min)/step, 
     sliderData = { 
      answers: [] 
     }, 
     value = 0; 

    for (i = 0; i <= count; i++) { 
     value = min + (step * i); 
     sliderData.answers[i] = value; // key => value created here 
    } 
    return sliderData; 
}​ 
+0

感謝清潔,爲我 – humdinger