event.preventdefault() 或返回 false 不起作用(提交后我需要保持在同一页面上)



我知道,有很多与这个主题有关的问题,我已经检查了很多,但我无法弄清楚,我的代码出了什么问题。而且我不知道还能尝试什么。提交后,我转到 lang.php,但我需要保持在同一页面上。

下面是语言更改的块:

<div id="language">
<form method="post" action="lang.php" id="langForm">
<select name="language" onchange="this.form.submit()">
<option value="en">en</option>
<option value="ru">ru</option>
</select>
</form>
</div>

这是js:

$(document).ready(function() {
$('form#langForm').submit(function (event) {
$.ajax({
type: 'post',
url: 'lang.php',
data: $('form#langForm').serialize()                
});
event.preventDefault();
return false;
});
});

它能有什么问题?

不要使用原生表单提交$('form#langForm').submit

它将重定向您的位置。

只需自己发送 Ajax。

尝试类似的东西

<select name="language" onchange="sendAjax">
<option value="en">en</option>
<option value="ru">ru</option>
</select>

.js:

function sendAjax() {
$.ajax({
type: 'post',
url: 'lang.php',
data: $('form#langForm').serialize()                
});
}

最新更新