1

小さなお問い合わせフォームを送信しようとしています。

POSTする私のjqueryは次のとおりです。

 <script>

    $(document).ready(function(){
    function submit_contact()
        {
            $.post("http://www.domain.com/wp-content/themes/toronto/handlers/contact.php", {
            contact_text: $("[name='contact_text']").val(),
            contact_email: $("[name='contact_email']").val(),
            }, function(data){
            console.log( data );
            });

        }
    }); 

</script>

フォームを処理する私のhtmlは次のとおりです。

<form method="post" >

                <textarea id="contact_me_text" name="contact_text">Ask me anything!</textarea>

                <div>

                <input type="text" name="contact_email" value="Email"/><br/><br/>



                <a id="contact_submit" href="javascript:submit_contact()">Submit</a>

                </div>
</form>

すべて問題ないように見えますが、フォームが送信されていません。通常の送信で .php ファイルを実行しましたが、正常に動作します。

何かご意見は?

4

3 に答える 3

2

関数を外部で宣言してから、$(document).ready()何かを使用して呼び出す必要があります。

なぜできないのですか?

ローカル変数は外部からアクセスできないため、同様にローカル関数にもアクセスできません。

于 2013-02-20T18:15:38.517 に答える
0

jQuery の ready 関数の外で関数を宣言する必要があります。さらに、serializeArray を使用して、送信するデータを決定できます。これを使用すると、すべてのコントロール名を言及する必要がなくなります。サーバー側では、フォームで言及したのと同じ名前で入力を受け取ることができます。

 function submit_contact()
{
    var params = $("#formId").serializeArray();
    $.post("http://www.domain.com/wp-content/themes/toronto/handlers/contact.php", params, function(data){
    console.log( data );
    });
}
于 2013-02-20T18:43:27.360 に答える