我遇到了问题,找不到任何解决方案。也许有人有类似的问题。这是表格:
<form class="filter-form" name="filter_form" action="[url]" method="POST">
<select name="active_filter" style="display: none;">
<option value="all">All</option>
<option value="active">Active</option>
<option value="inactive">Inactive</option>
</select>
<select name="date_filter" style="display: none;">
<option value="date_desc">Desc</option>
<option value="date_asc">Asc</option>
</select>
</form>
我在jQuery的选项上设置selected =“selected”(我必须这样做,因为我已经设置了“dropdown”)。在jQuery表单看起来像这样:
<form class="filter-form" name="filter_form" action="[url]" method="POST">
<select name="active_filter" style="display: none;">
<option value="all">All</option>
<option value="active" selected="selected">Active</option>
<option value="inactive">Inactive</option>
</select>
<select name="date_filter" style="display: none;">
<option value="date_desc">Desc</option>
<option value="date_asc" selected="selected">Asc</option>
</select>
</form>
然后我跑
$(".filter-form").serialize();
或仅提交表单
$(".filter-form").submit();
我只得到第一个选项元素的响应:
"active_filter=all&date_filter=date_desc"
只有Firefox才会出现此问题。我真的很感激任何帮助。感谢。
P.S。抱歉我的英语破碎^^,
答案 0 :(得分:0)
style =“display:none;”
这是一个问题
将它们设置为visibility:hidden和position:absolute。这些字段不会使用display:none发送到服务器,但将具有visibility:hidden。通过将“位置”切换为“绝对”,您应该获得相同的视觉效果。
答案 1 :(得分:0)
在Firefox中测试过,它工作正常。
$(function(){
$("#disp").text($(".filter-form").serialize());
});