我现在已经玩了好几个小时了,无法理解。
我有一个页面 signup.php ,其表单由ajax处理。如果我要将此页面设为主页并填写表单,则可以在ajax脚本中调用url: register.php ,但如果我访问此页面我的主要 index.php 页面中的 signup.php 页面通过href链接打破了ajax。表格不起作用。为什么呢?
以下是我的代码(截断相关性)
index.php 此页面包含指向 注册页面 的链接。
<div data-role="page" data-theme="a">
<div data-role="header" data-position="inline">
<h1>Carelincs</h1>
</div>
<div data-role="content" data-theme="a">
<p>My main page content</p>
<a href="../views/signup.php">Register</a>
</div>
</div>
HRE
注册页面,其中包含表单和ajax
signup.php
<body>
<script>
$(document).ready(function () {
$("#submit").click(function () {
var formData = $("#register").serializeArray();
$.ajax({
type: "POST",
url: "../pages/register.php",
cache: false,
data: formData,
success: onSuccess,
});
return false;
});
});
function onSuccess(data, status) {
data = $.trim(data);
$("#message").text(data);
}
function onError(data, status) {
data = $.trim(data);
$("#message").text(data);
}
</script>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="inline">
<h1>Carelincs</h1>
</div>
<div data-role="content" data-theme="a">
<form action="" method="POST" id="register">
<input type="text" name="username" placeholder="Username" />
<br />
<input type="password" name="password" placeholder="Password" />
<br />
<input type="checkbox" name="chekbox-mini-0" id="checkbox-mini-0" data-mini="true" />
<label for="checkbox-mini-0">Remember me</label>
<br /> <a href="../views/forogotpswd">Forgot Password</a>
<button type="submit" id="submit">Submit</button>
</form> <a href="../views/signup.php">Register</a>
<p id="message"></p>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
经过数小时的研究和游戏,我发现问题和解决方案归功于@ guest271314的提示。
<a href="../views/signup.php">Register</a>
触发了ajax并搞砸了表单,而我所要做的就是将其更改为
<a href="../views/signup.php" rel="external">Register</a>
我添加了rel=external
和中提琴,禁用了链接的ajax,我的表单正常工作。