【发布时间】:2016-01-26 05:13:17
【问题描述】:
也许这是使用 HTML 表单和 AJAX 之间的不兼容,但我已经分别使用这些方法没有问题。我正在尝试将表单字段的输入设置为 JS 变量,执行 AJAX 以在 php 脚本中确认客户端的密码,然后成功更改原始页面上的 html。 AJAX 调用工作正常,但在我的 div 中切换 HTML 后,页面会立即恢复到其原始状态(即它再次显示表单而不是函数生成的 HTML)。
这是我不能使用这种类型的表单然后在不刷新的情况下停留在同一页面的问题吗?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
var pw;
var ptest;
function pass() {
pw = document.getElementById("pwd").value;
alert(pw);
$.ajax({
url: "login.php",
type: "POST",
data: { password : pw
},
dataType: 'text',
success: function (data) {
document.getElementById("stuff").innerHTML = data;
},
error: function () { document.getElementById("stuff").innerHTML = 'fail'; }
});
alert("xx");
}
</script>
<html>
<body>
<br><br>
<div id="stuff">
<form onsubmit="pass()" autocomplete="off">
<label>Password: <input type="password" id="pwd"></label><br><br>
<input type="submit" />
</form>
</div>
</body>
</html>
【问题讨论】:
-
表单重新加载,没有其他操作。 JS 使用从我的 php 文件中检索到的 html 在 ajax 成功时正确更改 html,它会闪烁到新的 html,然后使用原始表单重新加载
-
在没有任何操作的情况下单击表单中的提交按钮会有效地重新加载页面 - 因为您没有任何操作,为什么还需要表单?
-
我猜你是用你的 suibmt 函数调用 ajax 然后提交表单。将您的按钮更改为调用 ajax 的常规按钮
-
是的,我猜它正在重新加载而没有任何操作命令。谢谢大家的解释
标签: javascript html ajax forms