我有两个按钮,基本上是“下一个”和“上一个”按钮,用于带有引导程序的选项卡式表单。当您从“简介”选项卡转到“申请人”选项卡时,代码就可以正常运行。唯一的问题是元素中有11个“标签”。我需要在<a>
中使用必要的部分来更改每个标签。
每次用户进入表单时,我需要更改的是href
,.style.width
以及“onclick”函数末尾的两个classNames
。
<a href="" data-toggle="tab" class="btn btn-primary pull-left hide" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Previous</a>
<a href="#applicant" data-toggle="tab" class="btn btn-primary pull-right" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Next</a>
需要与按钮对应的部分标识为id
,所有11个部分都不同。
<div class="tab-pane" id="confirmation">
因此,例如当用户点击“简介”标签中的“下一步”按钮时,我需要将上面的内容更改为:(对于上一个按钮,反之亦然)
<a href="#introduction" data-toggle="tab" class="btn btn-primary pull-left" onclick="document.getElementById('progressBar').style.width='10%'; document.getElementById('introductionTab').className='active'; document.getElementById('applicantTab').className='';">Previous</a>
<a href="#applicant" data-toggle="tab" class="btn btn-primary pull-right" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Next</a>
等tab-panes
。
我想我可以做类似的事情,我真的不知道如何启动它以及如何改变我需要的特定onclick元素。
if(this tab-pane is something?)
{
document.getelementById('previous').href="";
document.getelementById('previous').style.width="";
document.getelementById('previous').className="";
}
根据评论中的要求,标签的布局如下:
<div class="tab-content">
<div class="tab-pane" id="introduction">
//content here
</div>
<div class="tab-pane" id="applicant"> //and so on just like this for all 11 tabs.
//content here
</div>
</div>
答案 0 :(得分:3)
你去...... 这是使用Twitter引导程序和Jquery ... 希望它对你有帮助...... 进度条有点像黑客,但它是一个开始,我相信你可以从那里弄清楚...
唯一糟糕的是标签是可点击的,这不是您想要的,因为您希望它们在表单中前进而无法单击标签....但是螺母和螺栓在这里
$(document).ready(function(){
//Progress bar calculation
function setProgress(){
var length = $tabs.length;
var index = ($('li').index($(".active")))+1;
var width = (index/length)*100;
$('#progressBar').css('width', width+'%');
}
var $tabs = $('#tab_bar li');
setProgress();
$('#prevtab').on('click', function () {
$tabs.filter('.active').prev('li').find('a[data-toggle="tab"]').tab('show');
setProgress();
});
$('#nexttab').on('click', function () {
$tabs.filter('.active').next('li').find('a[data-toggle="tab"]').tab('show');
setProgress();
});
$tabs.click(function () {
setTimeout(setProgress, 200)
});
});
那么你的HTML,我不知道你对< ul >
所拥有的是什么,因为你没有提供那部分...所以我只是攻击了一些东西......但这应该与你的结构相似
<ul class="nav nav-tabs" id="tab_bar">
<li class="active"><a href="#introduction" data-toggle="tab">Intro</a></li>
<li><a href="#secondtab" data-toggle="tab">SecondTab</a></li>
<li><a href="#thirdtab" data-toggle="tab">Third</a></li>
<li><a href="#fourthtab" data-toggle="tab">Fourth</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane" id="introduction">
asdasdasdas
</div>
<div class="tab-pane" id="secondtab">
asdasdsagreteryterythhgh
</div>
<div class="tab-pane" id="thirdtab">
rthrthrthrthrt
</div>
<div class="tab-pane" id="fourthtab">
yujghjuyjyujedgjhegj
</div>
</div>
<a class="btn" id="prevtab" type="button">Prev</button>
<a class="btn" id="nexttab" type="button">Next</button>