【问题标题】:Radio button selection on jquery tabs label clickjquery选项卡标签上的单选按钮选择单击
【发布时间】:2010-01-13 04:44:56
【问题描述】:

我在这里有一个简单的工作(ASP.NET)场景: 3 asp:RadioButtons,每个都有 OnCheckedChanged 事件,将更新 asp:gridview。

但现在,我想为每个单选按钮选择添加一些描述,我认为将它们嵌入到 JQuery UI 选项卡中是个好主意,如下所示:

<div id="tabs">
<ul>
  <li><a href="#tabs-1"> 
       <asp:RadioButton  ID="RadioButton1" runat="server" Text="option1"  Checked="True"
        AutoPostBack="True" OnCheckedChanged="RadioButton_CheckedChanged" /> </a></li>
  <li><a href="#tabs-2">
       <asp:RadioButton ID="RadioButton2" runat="server" Text="option2"
        AutoPostBack="True" OnCheckedChanged="RadioButton_CheckedChanged" /></a></li>
  <li><a href="#tabs-3">
       <asp:RadioButton  ID="RadioButton3" runat="server" Text="option3"
       AutoPostBack="True" OnCheckedChanged="RadioButton_CheckedChanged" /></a></li>
 </ul>
 <div id="tabs-1"> <p>  content1</p>   </div>
 <div id="tabs-2"> <p>  content2</p>   </div>
 <div id="tabs-3"> <p>  content3</p>   </div>
 </div>

jquery 是

<script type="text/javascript">
    $(function() {
        $("#tabs").tabs();
    });
</script>

我希望在切换到该选项卡后选择每个选项卡的相应单选按钮(通过单击该选项卡内的任意位置) 我不知道如何通过 JQuery 或 JavaScript 或任何其他类型的建议来做到这一点。 请帮帮我

生成的 HTML 源代码:

<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
                    <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
                        <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#tabs-1">
                            <input type="radio" checked="checked" value="RadioButtonCart" name="ctl00$ContentPlaceHolder1$g2" id="ctl00_ContentPlaceHolder1_RadioButtonCart"/><label for="ctl00_ContentPlaceHolder1_RadioButtonCart">option1</label></a></li>
                        <li class="ui-state-default ui-corner-top"><a href="#tabs-2">
                            <span style="color: Green;"><input type="radio" onclick="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$RadioButtonShetab\',\'\')', 0)" value="RadioButtonShetab" name="ctl00$ContentPlaceHolder1$g2" id="ctl00_ContentPlaceHolder1_RadioButtonShetab"/><label for="ctl00_ContentPlaceHolder1_RadioButtonShetab">option2</label></span></a></li>
                        <li class="ui-state-default ui-corner-top"><a href="#tabs-3">
                            <input type="radio" onclick="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$RadioButtonFish\',\'\')', 0)" value="RadioButtonFish" name="ctl00$ContentPlaceHolder1$g2" id="ctl00_ContentPlaceHolder1_RadioButtonFish"/><label for="ctl00_ContentPlaceHolder1_RadioButtonFish">option3</label></a></li>
                    </ul>
                    <div id="tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
                        <p>                               content1</p>
                    </div>
                    <div id="tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
                        <p>                              content2                            </p>

                    </div>
                    <div id="tabs-3" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
                        <p>                            content3                            </p>
                    </div>

                </div>

好的,感谢 CraigF 帮助我解决了 2 个添加问题 id 到 id="tabsA-1" 之类的锚点,并使用 $("#aspnetForm").submit(); 模拟 OnCheckedChanged="RadioButton_CheckedChanged" 的回发;

    <script type="text/javascript">
    $(document).ready(function() {
        $("#tabsA-1").click(function() {
        $("#<%=RadioButtonCart.ClientID %>").attr("checked", "checked");
        $("#aspnetForm").submit();
        });
    }); 
</script>

我只需要在回发后找到一种方法来选择正确的选项卡,我的问题就解决了。

再次感谢 CraigF

这是在 asp.net 的帮助下选择正确选项卡的最后一块

  <script type="text/javascript">
    $(function() {
        var $tabs = $("#tabs").tabs();
        $tabs.tabs('select', '<%= selectedTabIndex %>');

    });
</script>

which selectedTabIndex 是 code_behind 中的公共字符串 var,我在 page_load 中更新了它的值。 一个有趣的问题是 JQuery 中的 .tabs( 'select' , index ) 不是从零开始 的选项卡索引,正如官方网站所说,它从 1 开始。

【问题讨论】:

    标签: asp.net javascript jquery radio-button


    【解决方案1】:

    使用 JQuery 向 div 添加点击事件。然后只需编写一个函数(Jquery)来重新选择单选按钮(这将触发单选按钮的服务器端回调)

    【讨论】:

    • 对不起,我的 Jquery 很差,你能提供更多帮助或提供更多线索
    • 把它放在你的 部分。 当他们点击第一个选项卡时,这将使第一个单选按钮被选中。你可以猜到其余的。
    • 不要忘记将组名添加到您的单选按钮中,并将 jquery 文件添加到您的项目中。
    • 可以加$("#form1").submit();在 $("#Radio.... 行下方。由于除了
      标签(用于您的标签)之外,它们不是任何其他实体,如果您不想要,您必须找到或添加另一个要选择的项目触发点击事件的内容。
    猜你喜欢
    • 2010-12-04
    • 2012-12-13
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多