如何在表单提交时重新加载 jquery 选项卡?
我使用 jquery 作为 ajax 选项卡,而不是对于我的需求来说太大的 jquery UI 下面的代码是我的ajax选项卡,它使用外部文件加载选定的选项卡
我还有一个使用ajax将数据发布到此页面的for HOMEfriendstatus.inc.php,它是#tab2
当我提交表单时我想知道什么,无论用户在屏幕上加载了哪个选项卡,我是否可以使其重新加载或更改为#tab2以显示#tab2的更新内容?
<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "HOMEbulletin.inc.php";
pageUrl[2] = "HOMEfriendstatus.inc.php";
pageUrl[3] = "HOMEbulletin.inc.php";
function loadTab(id){
if (pageUrl[id].length > 0){
$("#loading").show();
$.ajax({url: pageUrl[id], cache: false, success: function(message) {
$("#tabcontent").empty().append(message);
$("#loading").hide();
}
});
}
}
$(document).ready(function(){
/*$("#tab1").addClass('selected');*/
$("#loading").hide();
$("#tab1").click(function(){
loadTab(1);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab2").click(function(){
loadTab(2);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab3").click(function(){
loadTab(3);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
});
</script>
I use jquery for ajax tabs, not jquery UI that is to large for my needs
This code below is my ajax tabs, it loads the selected tab with an external file
I also have a for that uses ajax to post data to this page HOMEfriendstatus.inc.php which is #tab2
What I want to know when I submit the form, regardless of what tab the user has loaded on the screen, can I make it reload or change to #tab2 to show the updated content of #tab2?
<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "HOMEbulletin.inc.php";
pageUrl[2] = "HOMEfriendstatus.inc.php";
pageUrl[3] = "HOMEbulletin.inc.php";
function loadTab(id){
if (pageUrl[id].length > 0){
$("#loading").show();
$.ajax({url: pageUrl[id], cache: false, success: function(message) {
$("#tabcontent").empty().append(message);
$("#loading").hide();
}
});
}
}
$(document).ready(function(){
/*$("#tab1").addClass('selected');*/
$("#loading").hide();
$("#tab1").click(function(){
loadTab(1);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab2").click(function(){
loadTab(2);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab3").click(function(){
loadTab(3);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
});
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过在表单成功回调中运行
loadTab(2)
? 这应该足够了。您还没有向我们展示通过 AJAX 发送表单的代码,但我想类似的代码应该可以工作:
请注意,这重复了
$("#tab2").click()
函数的代码,因此在这种情况下,您应该考虑使用命名函数而不是匿名函数,并在 ajax 回调中重用它:PS。 jQuery UI 并不是太大。 您不必使用它的所有位。 您可以轻松加载选项卡模块。
Have you tried running
loadTab(2)
in the form success callback? This should be enough.You haven't showed us your code for sending form via AJAX but I guess something similar to that should work:
Notice that this duplicates the code for
$("#tab2").click()
function so you should consider using named function instead of anonymous in that case and reusing it in ajax callback:PS. jQuery UI is not too large. You don't have to use all it bits. You can easily just load tabs module.