javascript - 在 Telerik TabStrip (MVC) 中,如何获取选定的选项卡索引?

标签 javascript jquery asp.net-mvc telerik

我的页面看起来像这样,根据所选选项卡的索引,“保存”按钮需要有不同的行为。

menu

这是 jQuery 代码。

$("#btnSave").click(function () {
    var selectedTabIndex = $('#TabStrip').select().index()

    if (selectedTabIndex == 1) {
        InflowsSave();
    }

    if (selectedTabIndex == 2) {
        OutflowsSave();
    }

});

我在 Inspect Elements 控制台中输入了 $('#TabStrip').select().index()。选择哪个选项卡并不重要,它总是返回 2。

>>> $("#TabStrip").select().index()

2

$("#TabStrip").select()

<ul class="t-reset t-tabstrip-items">
    <div id="TabStrip-1" class="t-content">
    <div id="TabStrip-2" class="t-content t-state-active" style="display:block">
    <div id="TabStrip-3" class="t-content">

最佳答案

如果您正在使用 Telerik Extensions for ASP.NET MVC - 请查看以下有关 TabStrip 客户端事件处理的文档

TabStrip Client API & Events

从 JavaScript 选择任何 Telerik Extension 控件的方法如下:

查看:

<%= Html.Telerik().TabStrip()
        .Name("TabStrip")
        .Items(items =>{/*items definition */})
%>

JavaScript:

<script type="text/javascript">
        function getTabStrip(){

            var tabStrip = $("#TabStrip").data("tTabStrip");

            return tabStrip;

        }
</script>

在您的场景中,为了知道选择了哪个选项卡,我建议您收听 tabstrip select 事件并设置一个标志以指示选择了哪个 tabstrip。这是处理客户端事件的代码:

查看:

<% 
  Html.Telerik().TabStrip()
  .Name("TabStrip")
  .Items(items =>{/*items definition */})
  .ClientEvents(events =>
    {
        events.OnSelect("Select");
        events.OnError("Error");
        events.OnContentLoad("ContentLoad");
        events.OnLoad(() =>
            {%>
                function(e) {
                /*TODO: actions when the control is loaded.*/
                // "this" is the tabstrip.
                }
            <%});
    })
  .Render(); %>

Javascript:

<script type="text/javascript">              
      function Select(e) {
              // "this" in this event handler will be the component.
              // the "e" is an object passed by the jQuery event trigger. 
      }
      function Error(e) {
        //code handling the error
      }
      function ContentLoad(e) {
        //code handling the content load
      }
</script>

如您所见,您可以在 Select() 方法中设置一个标记以指示选择了哪个选项卡,然后在您的保存按钮中单击检查该标记并采取相应的操作

如果您浏览我在顶部提供的文档链接 - 它会告诉您控件公开的所有客户端事件和 API

希望这能回答你的问题

关于javascript - 在 Telerik TabStrip (MVC) 中,如何获取选定的选项卡索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170994/

相关文章:

javascript - d3渲染中的折线图但不显示

javascript - 覆盖上下文。属性和功能

javascript - 更新 JavaScript 对象创建模式

javascript - 追加到 div 中的 ul 元素

asp.net-mvc - 授权属性不起作用MVC 5

调整 div 大小的 JavaScript 问题

javascript - 函数范围内的可变变量

jquery - Windows Phone 8/Cordova/jQuery .find()

.net - MVC 模型类型条件绑定(bind)

html - 安全的 Web 文本格式