0

我的代码的简化版本:

JS:

$(function() {
    $("submit").click(function() {
        var msg_to = $("#msg_to").val();

        var dataString = 'msg_to=' + msg_to;

        $.ajax({
            type: "POST",
            url: "sendmessage.php",
            data: dataString,
            success: function(){
                $('.success').fadeIn(200).show();
                $('.error').fadeOut(200).hide();
            }
        });

        return false;
    });
});

HTML

<form method="post" name="form">
            <label class="label-left" for="msg_to">Message to</label>
            <input name="msg_to" id="msg_to" type="text">
 <input type="submit" value="" class="submit" />

php 文件将表单邮寄到我的电子邮件中,当我将表单发布到 PHP 文件时,这肯定有效。通过jquery,它就是行不通的。任何人都可以在我的代码中找到错误吗?

4

4 回答 4

4
$("submit")

应该:

$(".submit")

第一个查找<submit>标签。

于 2013-02-10T20:11:08.607 回答
3

尝试这个:

$(document).ready(function() { // use document query selector then test for ready state
    $(".submit").click(function() { // submit query selector should have class "."
        var msg_to = $("#msg_to").val();
        var dataString = "msg_to=" + msg_to;

        $.ajax({
            type: "POST",
            url: "sendmessage.php",
            data: dataString,
            success: function() {
                $(".success").fadeIn(200); // no need for show()
                $(".error").fadeOut(200); // no need for hide()
            }
        });

        return false;

    });
});
于 2013-02-10T20:11:35.063 回答
0

有用!这是@Vulcan 的解决方案和@Jacedc 的组合,我错误地在上面的脚本之后导入jquery ..

于 2013-02-10T20:25:06.743 回答
0

我认为您的表单在发出 AJAX 请求之前提交。使用该event.preventDefault()功能可以防止表单提交,因此 AJAX 请求可以完成加载。

$(function() {
    $(".submit").click(function(event) { // Added the '.' for the class, and the event parameter
        event.preventDefault(); // This prevents the submit-event to be fired
        var msg_to = $("#msg_to").val();

        var dataString = 'msg_to=' + msg_to;

        $.ajax({
            type: "POST",
            url: "sendmessage.php",
            data: dataString,
            success: function(){
                $('.success').fadeIn(200).show();
                $('.error').fadeOut(200).hide();
            }
        });

        return false;
    });
});
于 2013-02-10T20:17:56.390 回答