php - ajax 发布但无法阻止刷新

标签 php ajax post page-refresh

我在 ajax 发布后刷新页面时遇到问题,我尝试了 6 种不同的变体,有一次我得到了正确的结果,但无法阻止页面刷新,在搜索网络和周围之后这个网站现在没有任何功能,但它仍然令人耳目一新...

当前代码是:

$('#submit_btn').click(function() {
/*event.preventDefault();*/
var curPassword = $("input#curPassword").val();
var newPassword = $("input#newPassword").val();
var new2Password = $("input#new2Password").val();
/*var params = 'curPassword='+ curPassword + '&newPassword=' + newPassword + '&new2Password=' + new2Password; */
var params = {
    curPassword: curPassword,
    newPassword: newPassword,
    new2Password:new2Password
};
$.ajax({
        type: "POST",
        url: "testAjax.php",
        data: params,
        success: function(msg){
            alert(msg);
        }
    });
    return false;
});

形式是:

<form method="post" action="" name="confirmChange" class="confirmChange">
<label for="curPassword">Current Password:</label>
<input type="password" name="curPassword" id="curPassword" value="" />
<label for="newPassword">New Password:</label>
<input type="password" name="newPassword" id="newPassword" value="" />
<label for="new2Password">Confirm New Password:</label>
<input type="password" name="new2Password" id="new2Password" value="" />
<br />
<input type="button" name="confirmChange" class="confirmChange" id="submit_btn" value="Change" />

感谢任何帮助让它工作的帮助=/

更新: 取出其他非直接相关的代码,因为它有点使问题困惑。还更新了代码以反射(reflect)最新修订。 我将 ajax url 更改为简单的 textAjax.php 和简单的 echo hello world 没有别的,我仍然一无所获。

更新 2 尝试将 javascript 代码更改为:

$('#submit_btn').click(function() {
        alert('Button Clicked');
});

我什么也没得到...如果是下面的表格,点击功能怎么可能根本不起作用?

最佳答案

您不需要使用 type="submit"进行输入。只需使用 type="button"并在按钮的点击事件上调用 ajax 函数。

<input type="button" name="confirmChange" class="confirmChange" id="submit_btn" value="Change">

$('#submit_btn').click(function() {
  (ajax code here)
});

preventDefault() 也可以,但在我看来,既然可以完全避免使用提交按钮,为什么还要阻止事件自然发生呢?

更新:我刚刚意识到使用提交将允许用户按回车键来触发您的操作,所以也许这也有一些优点。无论如何,here's a similar question that contains elaborations into preventDefault() .

更新 2:您需要修复 ajax 函数中的参数。使用数组而不是尝试构建查询字符串:

var params = {
curPassword: curPassword,
newPassword: newPassword,
new2Password:new2Password
};

关于php - ajax 发布但无法阻止刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10943186/

相关文章:

javascript - 通过 AJAX 将值传递到数据库

php - 使用 jQuery 重新设计表单样式?

Javascript - 如何检查带有类的元素是否存在于纯字符串中?

c - 将 Solaris/Linux 上的 ANSI 代码移植到 Windows Server 2012

php - 将多个文件上传与 PHP 中的复选框关联起来

php - 如何获取数组范围

php - 在 Doctrine 的 QueryBuilder 中使用嵌套查询和多对多关系

PHP 函数循环 SQL 结果并生成 HTML 表

java - Spring Boot 无法成功将数据 POST 到数据库 (ORA-00942)

javascript - Post 请求不起作用,错误显示 "cannot post/addstudent/add"