2013-02-13 38 views
0

我試圖使用jQuery的serializeArray方法,從一個簡單的形式創建對象的數組工作(從表單中獲取數據和緩存是使用更高版本):jQuery的serializeArray不會在Safari

<fieldset class="myFieldset"> 
    <div id="divContainer">   
     <div class="anotherdiv"> 
      <input type="text" name="testBox1" class="aclass" /> 
      <select name="testSel1" class="atestclass"> 
       <option value="car">car</option> 
        <option value="boat">boat</option> 
        <option value="plane">plane</option> 
       </select> 
      </input> 
     </div> 
    </div> 
</fieldset> 
<fieldset class="submit-wrap"> 
     <input type="submit" name="enter" id="enter" value="Enter" > 
</fieldset> 

我調用serializeArray上點擊:

$('#enter').click(function(){  
    var testForm = jQuery('.myFieldset').serializeArray(); 
    alert(testForm); 
}); 

這個工作在鉻(http://jsfiddle.net/pCELZ/)的罰款,但不是在Safari瀏覽器。有任何想法嗎?

//我的表單元素沒有被禁用,並且包含'name'屬性。嘗試各種HTML ... //在此先感謝。

回答

1

而是採用fieldset使用form

<form class="myFieldset"> 
    <div id="divContainer">   
    <div class="anotherdiv"> 
     <input type="text" name="testBox1" class="aclass" /> 
     <select name="testSel1" class="atestclass"> 
      <option value="car">car</option> 
       <option value="boat">boat</option> 
       <option value="plane">plane</option> 
      </select> 
     </input> 
    </div> 
    </div> 
</form> 

這裏測試:fiddle

+0

謝謝你,宰,正確的響應。在寫出問題之後,立即簡化我的代碼並在jsfiddle上嘗試它,我得出了同樣的結論。下面的Darshanags答案似乎也適用。再次感謝... – 2013-02-14 16:28:48

0

潔是正確的。另一種方法是通過更改選擇器來指定元素。

$('#enter').click(function(){  
    var testForm = jQuery('.myFieldset :input').serializeArray(); 
    console.log(testForm); 
}); 

工作撥弄here