2013-02-13 62 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