3

我目前正在使用js函数提交数据而无需页面刷新或按钮单击。输入字段位于标签 #2 内,一旦用户停止输入,它就会执行 js。问题是 js 正在刷新页面,从而将我带回 tab#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 回答