0

ページをリロードせずにフォームを送信し、$.post を使用してデータを外部の php ファイルに渡したいと考えています。フォーム送信時にページのリロードを防止することに問題があります。送信ボタンをクリックしたときにリロードをキャンセルするにはどうすればよいですか?

コードは次のとおりです。

<script>
    $(document).ready(function(e){
        $("#formajax").live("submit", function(e){
            var $this = $(this);
            e.preventDefault();
            $.post("process.php", $this.serialize(), function(data){
                alert("DATA PASSED!");
            });
            return false;
        })
    })
</script>

<form method="post" action="" id="formajax">
    <input type="text" id="samplefield" name="samplefield" value=""/>
    <input type="submit" value="Submit"/>
</form>

ありがとう!

4

1 に答える 1

1

liveメソッドがjQueryで何をするのかよくわかりませんが、それが問題の原因のようです。に置き換えるlivebind、私のテストでは、ページがリロードされず、「DATA PASSED」プロンプトが表示されます。

    <script>
            $(document).ready(function(e){
                    $("#formajax").bind("submit", function(e){
                            var $this = $(this);
                            e.preventDefault();
                            $.post("index.php", $this.serialize(), function(data){
                                    alert("DATA PASSED!");
                            });
                            return false;
                    })
            })
    </script>

    <form method="post" action="" id="formajax">
            <input type="text" id="samplefield" name="samplefield" value=""/>
            <input type="submit" value="Submit"/>
    </form>
于 2012-06-04T02:48:22.243 に答える