2011-10-22 58 views
6

我有這樣的代碼:奇怪的行爲 - 連載

var sizes = ["1/9","1/8","1/7","1/6","1/5","1/4","1/3","1/2","1/1","2/1","3/1","4/1","5/1","6/1","7/1","8/1","9/1"]; 

      var slider = new dijit.form.HorizontalSlider({ 
       value:8, 
       name:"value"+[i], 
       slideDuration:0, 
       onChange:function(val){ 
        dojo.byId('value'+[i]).value = sizes[val]; 
        }, 
       minimum:0, 
       maximum:sizes.length-1, 
       discreteValues:sizes.length, 
       intermediateChanges:"true", 
      },node); 

現在,當我提出:

$("#custom").submit(function() { 
     var formdata = $("#custom").serializeArray(); 
     $.ajax({ 
      url: "insert.php", 
      type: "post", 
      dataType: "json", 
      data: formdata, 
      success: function(data) { 
} 
}); 

例如,如果我選擇值1/8被髮送至1,或9/1爲16

我要的是送分數值,即顯示在輸入框中,但正如我所說的,沒有被髮送到insert.php

任何想法?謝謝

+0

嘗試'變種尺寸= [ 「1 \/9」, 「1 \/8」, 「1 \/7」];' – Rafay

+3

@ 3nigma:我不那這將解決問題。 '/'通常不需要被轉義。根據OP的描述,如果「1/8」作爲1發送,「9/1」作爲16發送,那聽起來數組索引被髮送。 – darioo

+0

@darioo你是對的我沒有閱讀'9/1'作爲16部分... – Rafay

回答

3

在滑塊初始化期間,將創建一個<input type="hidden" name="input0" ... />
使用滑塊後,此input獲取當前滑塊值(0sizes.length - 1之間的數字)。 onChange使用名爲sizes的數組中的值設置另一個html輸入標記。
提交serializeArray()時,將獲取具有name屬性的所有輸入字段的值。
在我的EXAMPLE中,我給出了將在onChange a name屬性上填充的輸入字段,因此序列化將同時採用這兩個值。

HTML:

<form action="#" id="custom"> 
    <div id="slider0"></div> 
    <input type="text" id="value0" data-dojo-type="dijit.form.TextBox" name="value0" /> 
    <input type="submit" value="submit" /> 
</form> 
+1

謝謝scessor。真的很好的解釋。 –