我试图通过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
”之后的所有内容消失。
答案 0 :(得分:2)
当您使用method="get"
时,所有网址参数都来自表单字段,您无法在操作中添加网址参数。
如果要发送其他参数,则应向表单添加隐藏的输入字段,而不是修改URL。
答案 1 :(得分:0)
这是GET
行为,有关详细信息,请参阅http://www.w3schools.com/tags/att_form_method.asp。
您想要的是重定向页面并在查询字符串中附加颜色变量。 你可以在javascript中执行此操作:
window.location.replace("/browse.php?" + color);