我不确定我的代码有什么问题,但我的AJAX不起作用。我已经包含了jQuery库文件,但是当我调用AJAX时,程序只是没有加载PHP文件。正如您在下面看到的那样,.ajax调用的URL为" mail.php"但在提交时,此文件永远不会加载。我可以手动将表单的操作标记命名为" mail.php"但这只会加载" mail.php",这会击败AJAX。我做错了什么?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form method="post" name="myForm" action="tac.php">
<label>Name:</label> <br />
<input name="sender">
<br /> <br />
<label>Email address:</label><br />
<input name="senderEmail">
<br />
<label>Message:</label> <br />
<textarea rows="5" cols="20" name="message"></textarea>
<br /> <br />
<input type="submit" name="submit">
</form>
<script>
$(document).ready(function() {
$("#myForm").submit(function() {
var roy = new Object();
roy.sender = $('#sender').val();
roy.senderEmail = $('#senderEmail').val();
roy.message = $('#message').val();
var jo = JSON.stringify(roy);
$.ajax({
type: "POST",
url: "mail.php",
data: {roy: jo},
success: function(msg){
alert(msg);
}
});
return false;
});
});
</script>
答案 0 :(得分:1)
更改
<form method="post" name="myForm" action="tac.php">
到
<form method="post" id="myForm" action="tac.php">
此代码
$("#myForm")
正在寻找id =“myForm”而不是name =“myForm”
的元素干杯
答案 1 :(得分:0)
它无法正常工作,因为您试图触发一个不存在的ID事件。
$("#myForm").submit(function() {
id&#34; myForms&#34;它并不存在于&lt;形式&gt;标签
把id =&#34; myForm&#34;在&lt;形式&gt;它会正常工作。
像这样:<form method="post" id="myForm" action="tac.php">
并删除名称=&#34; myForm&#34;因为它对表单标签没有用...