0

我试图通过 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?”之后的所有内容 消失。

4

2 回答 2

2

当你使用 时method="get",所有的 URL 参数都来自表单字段,你不能将 URL 参数放在 action 中。

如果你想发送额外的参数,你应该在表单中添加隐藏的输入字段,而不是修改 URL。

于 2013-09-02T16:35:51.243 回答
0

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

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

window.location.replace("/browse.php?" + color);
于 2013-09-02T16:37:07.413 回答