新的 AJAX 在这里。我有一个php文件,有一个简单的元素在它的形式。我希望能够点击“提交”,然后有表格数据发送到另一个php来处理它(这个过程可能需要很长时间),然后当它完成后,应返回一些结果(文本等)到第一个php文件。以下是我的代码:
<html>
<head>
<script src="jquery.min.js"></script>
<script>
function submitBorrow() { // Call to ajax function
$.ajax({
type: "POST",
url: "sendEmail.php",
data: { test:'yes', wat:'no' },
success: function(html)
{
$("#emailResultDiv").html(html);
}
});
}
</script>
</head>
<body>
<form id="borrowForm" name="borrowForm">
<select name="duration" id="duration" onchange="submitBorrow();">
<option value="3 days">3 days</option>
<option value="4 days">4 days</option>
<option value="5 days">5 days</option>
<option value="6 days">6 days</option>
<option value="1 week">7 days</option>
<option value="2 week">14 days</option>
<option value="3 week">21 days</option>
<option value="1 month">30 days</option>
<option value="40 days">40 days</option>
<option value="60 days">60 days</option>
</select>
<button onclick="submitBorrow();">submitBorrow</button>
<div id="emailResultDiv">Here</div>
</form>
</body>
</html>
下面是我的sendEmail.php的内容(只是一个简单的php,带有伪进程命令sleep。)
<?php
if ($_POST) {
sleep(5);
echo "DONE!";
}
?>
当我改变选择项时,5秒后,值DONE!显示在div上。但是当我按下按钮时,它没有这样做。为什么会这样?如何实现我的需要?
2条答案
按热度按时间y0u0uwnf1#
新手错误。在发布了一个问题后,我才意识到如果没有给出类型,表单中的所有按钮都应该是提交表单。
就这么做吧,效果很好:
我指定了type=“button”,它不再是提交按钮,并解决了我遇到的问题。
zdwk9cvp2#
在这种情况下,您可以始终使用preventDefault()来阻止表单提交。