我正在使用 Bootstrap 并具有动态创建的选项卡。虽然它们是动态的,但我只会创建 3 个选项卡。它们是:草稿、已发布和已存档。这些实际上是枚举。
当我单击选项卡时,我想将隐藏字段更改为选项卡的相同值,以便在发生回发时,我希望打开先前打开的选定项。
标签 id 是 #i ,其中 i 是 for 循环中的迭代器。所以选项卡将是:#0、#1 和#2。
有谁知道我如何为所有选项卡创建一个 onclick 事件并将隐藏字段的值更改为选项卡 ID 的值。
这是代码:
<div class="tab-content">
@for (int i = 0; i < Model.WorkflowStatuses.Count; i++)
{
<div class="tab-pane @(i == 0 ? "active" : string.Empty)" id="@i">
编辑 这是我到目前为止所拥有的-隐藏字段的值没有改变:
<script>
$('#listingTab a[data-toggle="tab"]').on('show', function (e) {
$('#selectedTab').val($(e.target).prop('id'));
})
@Html.HiddenFor(m=>Model.SelectedTab)
@if (Model.AnyListings)
{
<ul class="nav nav-tabs" id="listingTab">
@for (int i = 0; i < Model.WorkflowStatuses.Count; i++)
编辑 我添加了字母“t”,但隐藏的值仍然没有改变:
<script>
$('#tab-content a[data-toggle="tab"]').on('show', function (e) {
$('#SelectedTab').val($(e.target).prop('id'));
})
</script>
@Html.HiddenFor(m=>Model.SelectedTab)
@if (Model.AnyListings)
{
<ul class="nav nav-tabs" id="listingTab">
@for (int i = 0; i < Model.WorkflowStatuses.Count; i++)
{
<li class="@(i == 0 ? "active" : string.Empty)"><a href="@string.Format("#t{0}", i)" data-toggle="tab">@Model.WorkflowStatuses[i].ToString()</a></li>
}