我目前正在使用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>
答案 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')
。 Docs和related question。