JS / Ajax:无需刷新或按钮单击即可获取输入字段值

时间:2012-07-13 16:44:48

标签: javascript jquery ajax

我目前正在使用js函数提交数据,而无需刷新页面或点击按钮。输入字段位于选项卡#2内,一旦用户停止输入就执行js。问题是js正在刷新页面,因此将我带回标签#1。如何防止页面刷新?我以为我已经在JS函数中包含了必要的代码来阻止它。 EXAMPLE

<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>

2 个答案:

答案 0 :(得分: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;  

做了一些改变

答案 1 :(得分:0)

而不是.submit(),您应该使用.triggerHandler('submit')Docsrelated question