通过JQuery提交表单后缺少查询字符串参数

时间:2013-02-19 18:38:29

标签: javascript jquery

我想在所选值发生变化时提交表单,并添加查询字符串参数。它只能提交,但参数丢失。例如,提交时,我想将表单提交到此URL:

http://www.example.com/myblog?year=2012

但下面的网址实际上是提交的,参数丢失了:

http://www.example.com/myblog

如果我改为提交给google.com,则会有效。

有什么想法吗?

<script type="text/javascript">
    $(document).ready(function () {
        $('#newsArchiveDropDown').change(function () {
            var selectValue = $(this).val();
            var form = $('#newsArchiveForm');
            form.attr('action', form.attr('action') + '?year=' + selectValue);                 
            form.submit();
        });
    });
</script>

<form id="newsArchiveForm" method="GET" action="http://www.a.com/myblog" novalidate="novalidate">
    <select id="newsArchiveDropDown" name="">
        <option value="2012" class="">2012</option>                                          
        <option value="2011" class="">2011</option>
    </select>
</form>

2 个答案:

答案 0 :(得分:0)

只需在select元素上将name属性设置为“year”即可生成预期结果。 jQuery变得更加简单。

$(document).ready(function () {
    $('#newsArchiveDropDown').change(function () {
        $('#newsArchiveForm').submit();
    });
});


<form id="newsArchiveForm" method="GET" action="http://www.a.com/myblog" novalidate="novalidate">
    <select id="newsArchiveDropDown" name="year">
            <option value="2012" class="">2012</option>
            <option value="2011" class="">2011</option>
    </select>
</form>

答案 1 :(得分:0)

如果没有选择任何选项,就会出现问题。确保在继续之前先选择一个选项。