我正在尝试在修改其 action 属性后使用 jquery 提交表单。动作属性更新正常,但我希望浏览器位置与动作相同。但事实并非如此。你明白为什么吗?
这是表格:
<form method="GET" class="modForm" action="">
<input type="text" placeholder="Search" class="modSearchValue">
<input type="radio" name="text" value="text" class="text" title="Search">
</form>
这是jQuery:
$('.modForm').submit(function(event) {
var $this = $(this),
var query = $this.find('.modSearchValue').val(); // Use val() instead of attr('value').
var locale = window.location;
if($('.text').is(':checked')){query = '&text='+query;}else{query = '&handle='+query;}
route = locale+query;
console.log(route);
if (query.length >= 1) {
// Use URI encoding
var newAction = (route);
console.log(newAction); // DEBUG
// Change action attribute
$this.attr('action', newAction);
//event.preventDefault();
} else {
console.log('Invalid search terms'); // DEBUG
// Do not submit the form
event.preventDefault();
}
});
这里,如果当前位置是http://localhost/search
,搜索词是14,那么action会变成http://localhost/search/?handle=14
然后提交。但由于某种原因,它不会。