jquery序列化或提交表单不适用于firefox中的选定选项

时间:2013-11-03 19:29:09

标签: jquery html firefox serialization

我遇到了问题,找不到任何解决方案。也许有人有类似的问题。这是表格:

<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。抱歉我的英语破碎^^,

2 个答案:

答案 0 :(得分:0)

style =“display:none;”

这是一个问题

将它们设置为visibility:hidden和position:absolute。这些字段不会使用display:none发送到服务器,但将具有visibility:hidden。通过将“位置”切换为“绝对”,您应该获得相同的视觉效果。

答案 1 :(得分:0)

在Firefox中测试过,它工作正常。

$(function(){
    $("#disp").text($(".filter-form").serialize());
});

以下是演示:http://jsfiddle.net/ashishanexpert/m8uXd/