【发布时间】:2016-01-05 14:29:09
【问题描述】:
我必须处理由第三方生成的表单。此表单提供了一些复选框“多选”属性。但是输入名称是相同的,PHP $_POST 不能处理相同的键(只处理最后一个数据)。
这是一个表格示例:
<form>
<input type="checkbox" name="attr1" value="1" />
<input type="checkbox" name="attr1" value="2" />
<input type="checkbox" name="attr1" value="3" />
<input type="checkbox" name="attr1" value="4" />
<input type="checkbox" name="attr2" value="xx" />
<input type="checkbox" name="attr3" value="a" />
<input type="checkbox" name="attr3" value="b" />
<input type="checkbox" name="attr3" value="c" />
<input type="checkbox" name="attr3" value="d" />
<input type="text" name="attr4" value="" />
</form>
我想解析所有复选框输入,只获取一组同名输入,并将“[]”附加到它们的名称...
jQuery 处理后我想得到什么:
<form>
<input type="checkbox" name="attr1[]" value="1" />
<input type="checkbox" name="attr1[]" value="2" />
<input type="checkbox" name="attr1[]" value="3" />
<input type="checkbox" name="attr1[]" value="4" />
<input type="checkbox" name="attr2" value="xx" />
<input type="checkbox" name="attr3[]" value="a" />
<input type="checkbox" name="attr3[]" value="b" />
<input type="checkbox" name="attr3[]" value="c" />
<input type="checkbox" name="attr3[]" value="d" />
<input type="text" name="attr4" value="" />
</form>
有没有办法识别同名的输入组?
【问题讨论】:
-
您是否有理由使用 JavaScript 执行此操作而不是直接修改标记?我猜你不介意疏远禁用 JS 的用户,对吗?
-
此 HTML 表单由第三方提供(由 XSL 转换的 XML),我不想修改提供的 XSL(它是版本化的,我从 web 服务中获取)。你说得对,我不处理 JS 禁用用户(它不是公共网站,而是在线服务应用程序)。