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 に答える