更新:好的,我需要被枪杀。我省略了一些表格代码来减少帖子的长度。这是完整的代码:
<form name="userupdate" id="userupdate" method="post">
<input type='hidden' name='username' id='username' value='andyd273' />
<input type='hidden' name='setusertype' id='setusertype' value='1' />
<table align="left" border="1" cellspacing="0" cellpadding="3" class="bodytext">
<tr><td>andyd273</td></tr>
<tr><td>
<input type='checkbox' name='DealerType[]' id='GM' value='1' /> GM<br>
<input type='checkbox' name='DealerType[]' id='Chrysler' value='2' /> Chrysler<br>
<input type='checkbox' name='DealerType[]' id='Ford' value='3' /> Ford<br>
</td></tr>
</table><br>
<input type='button' value='Save' onclick='javascript: formSubmit();' />
</form>
我想我会尝试一些东西,并删除了表的内容,只需保留简单的表单输入,并且复选框就像在Chrome中一样开始工作。
所以,新问题:当输入在表格内时,为什么不在IE中序列化工作? 感谢所有试图帮助解决第一个不完整问题的人!
留下完整性的旧问题:
我正在尝试获取要序列化的表单。它适用于Chrome和Firefox,但不适用于Internet Explorer 例如:
<input type='hidden' name='username' id='username' value='andyd273'>
<input type='hidden' name='setusertype' id='setusertype' value='1'>
<input type='checkbox' name='DealerType[]' id='GM' value='1' /> GM<br>
<input type='checkbox' name='DealerType[]' id='Chrysler' value='2' /> Chrysler<br>
<input type='checkbox' name='DealerType[]' id='Ford' value='3' /> Ford<br>
在Chrome中我得到:
Array
(
[username] => andyd273
[setusertype] => 1
[DealerType] => Array
(
[0] => 1
[1] => 3
)
)
但在IE中我只得到:
Array
(
[username] => andyd273
[setusertype] => 1
)
所以我不确定需要做些什么才能让它在IE中运行。
/旧问题
答案 0 :(得分:1)
更新
因为表元素中的嵌套输入元素不是合法的HTML语法。 Chrome和Firefox平稳地解决了这个“问题”,特别是:Safari并不总是如此。
回答评论 - 如果订单是表格&gt;表&gt;等等&gt;输入不正确,表&gt;表格的东西&gt;形式&gt;输入很好。
进行格式化的“正确”方式基本上是div
或fieldset
s,然后是style
属性。各种display
选项可能是您想要的(inline
和inline-block
可能最有用,但table
和各种衍生产品取决于您必须支持的IE版本) - 阅读here to figure out what's at your disposal,尽管可能有一些设置高度和宽度的诡计。
旧:
您可以使用多选界面替换复选框界面吗?这可能是解决...挑剔... IE实现的一种方法。那就是:
<select multiple name="DealerType">
<option value="1">GM</option>
//...etc
</select>
此外,从您的示例中,您的隐藏元素未关闭(以/>
而不是>
终止)。根据您正在处理的IE,这可能是问题的一部分。
另一个澄清评论:你使用的是什么版本的jQ?
答案 1 :(得分:1)
jQuery的序列化不包含未选中的复选框。
看看这个小提琴:
您可以从以下问题中找到更多信息:
jQuery serialize does not register checkboxes
忽略代码,不会让我发布答案。
$('#test').on('click', '#submit', validate);
function validate() {
var data = $('#test').serialize();
console.log(data);
}