在通过jQuery更改窗体上的操作后,GET变量消失。

时间:2013-09-02 16:32:50

标签: javascript jquery html

我试图通过jQuery在表单上更改动作URL。我有这个代码。

<form id='form_a' action='browse.php' method='get'>
    <input type="submit" value="Filter" id='but_a'>
</form>
<script>
    var def = [];
    $('.attr_color').change(function () {
        if ($(this).attr('checked')) {
            def.push($(this).val());
        } else {
            def.splice($.inArray($(this).val(), def), 1);
        }
        color = "&attr_color=" + def.join(",");
        if (def.length === 0) {
            color = "";
        }
        $('#form_a').get(0).setAttribute('action', "browse.php?" + color);
    });
</script>

当我通过Chrome检查检查代码时,表单操作正在更改,但在发送表单后,“browse.php”之后的所有内容消失。

2 个答案:

答案 0 :(得分:2)

当您使用method="get"时,所有网址参数都来自表单字段,您无法在操作中添加网址参数。

如果要发送其他参数,则应向表单添加隐藏的输入字段,而不是修改URL。

答案 1 :(得分:0)

这是GET行为,有关详细信息,请参阅http://www.w3schools.com/tags/att_form_method.asp

您想要的是重定向页面并在查询字符串中附加颜色变量。 你可以在javascript中执行此操作:

window.location.replace("/browse.php?" + color);