3

現在、js関数を使用して、ページを更新したりボタンをクリックしたりせずにデータを送信しています。入力フィールドはタブ#2内にあり、ユーザーが入力を停止するとjsを実行します。問題は、jsがページを更新しているため、タブ#1に戻ることです。ページが更新されないようにするにはどうすればよいですか?これを止めるために必要なコードをJS関数に含めたと思いました。

<script>
$(document).ready(function() {
    var timer;
        $('#video-input1').on('keyup', function() {
            var value = this.value;

            clearTimeout(timer);

            timer = setTimeout(function() {

                //do your submit here
                $("#ytVideo").submit()


                //alert('submitted:' + value);
            }, 2000);
        });

    //submit definition once submit is executed
    $('#ytVideo').submit(function(e){
        e.preventDefault(); //prevent page refresh
        var form = $('#ytVideo').serialize();

        //submit.php is the page where you submit your form
        $.post('index.php#tab-2', form, function(data){ 
            var x = $(data);
            $("body").html(x);
        });
        return false;
    });
    return false;                                                         

});
</script>
4

2 に答える 2

2

この行を変更してみてください

//do your submit here
$("#ytVideo").submit()

$("#ytVideo").trigger("submit");

問題は、フォームが送信された後に送信が何をすべきかを定義することであると思います。これにより、ページがリロードされます。
編集
済みこの変更を試してください

$('#ytVideo').submit(function(event){
        event.preventDefault(); //prevent page refresh
        event.stopPropagation(); //+
        var form = $('#ytVideo').serialize();

        //submit.php is the page where you submit your form
        $.post('index.php#tab-2', form, function(data){ 
            var x = $(data);
            $("body").html(x);
        });
        //- return false;
    });
    //- return false;  

いくつかの変更を加えました

于 2012-07-13T16:53:56.480 に答える
0

代わりに.submit()を使用する必要があります.triggerHandler('submit')ドキュメント関連する質問

于 2012-07-13T17:59:38.487 に答える