我有一个多重选择如下。
它允许我选择如下选项。假设选择了3项运动。
如上图所示选择项目后,表单提交成功。
但不幸的是,如果没有像下面这样选择体育项目时,提交的表格是空的。
选择框
<select style="width: 100px; height: 80px;" class="input" id="selected_sport_list" name="selected_sport_list[]" multiple="">
<option value="2">sport 2</option>
<option value="3">sport 3</option>
<option value="5">sport test x</option></select>
如何确保在提交表单时选中特定项?可以使用jquery来解决这个问题吗?或者怎么做?
谢谢
最佳答案
这里的问题是浏览器不会提交每个选择框中的值,除非用户先“选中”它们。这是标准行为,您必须使用JavaScript解决问题。
您需要做的是确保在提交表单时,HTTP请求包含每个选择框中的值。您可以通过两种方式执行此操作:
手动构造提交数据的一部分并将其转发给服务器——例如,将其作为查询字符串的一部分包括进来,或者将填充的数据对象传递给某个jQuery AJAX方法,或者
动态地向表单添加/删除隐藏的输入元素,以匹配“选择框”状态,以便在提交表单时,这些输入元素包含所需的信息(在这种情况下,您应该小心覆盖用户确实选择了某些选项的情况;您不需要双重输入!)
第一个选项包括拦截表单提交并通过JavaScript提交您自己修改过的请求。
第二个选项涉及在表单中添加和删除元素,可以急切地实现(拦截元素在选择框之间的传输,并立即使用隐藏元素镜像状态),也可以懒惰地实现(拦截表单提交并动态注入隐藏元素)。
因为此时我们手头没有所有的信息,所以您应该尝试从上面选择一种方法,并提供一些您编写的相关代码。
关于jquery - 选择多个提交问题-如果未选中,则POST为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13137280/