AJAX没有应用于表单

时间:2014-08-30 16:51:54

标签: php jquery ajax

我不确定我的代码有什么问题,但我的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> 

2 个答案:

答案 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;因为它对表单标签没有用...