我正试图使用JQuery的serializeArray方法从一个简单的表单中创建一个对象数组(从表单中获取数据并缓存以供稍后使用):
<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。。。//提前谢谢。
而不是使用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
Jai是正确的。另一种方法是通过更改选择器来指定元素。
$('#enter').click(function(){
var testForm = jQuery('.myFieldset :input').serializeArray();
console.log(testForm);
});
工作小提琴这里