【问题标题】:disable or hide ASP listitem using jquery使用 jquery 禁用或隐藏 ASP listitem
【发布时间】:2011-09-15 22:36:49
【问题描述】:

我有一个带有两个列表项的 asp:radio 按钮

asp:RadioButtonList id=Myradio"
asp:listitem1 value="li1"
asp:listitem2 value="li2"

它在水平方向上呈现为每个列表项的 td。

我想要实现的是在某些条件下动态显示或隐藏值为“li2”的列表项。

我做了这样的事情:

$('[value=li2]').hide();

这可行,但它只是隐藏单选按钮,而不是为该列表项生成的标签。 生成的标记: 表 id=Myradio 身体 tr TD input type="radio" check="checked" value="li1" name="ctl03$Myradio id="ctl03_Myradio_0" 标签为="ctl03_Myradio_0" li1 标签 /td TD input type="radio" check="checked" value="li2" name="ctl03$Myradio id="ctl03_Myradio_0" 标签为="ctl03_Myradio_0" li2 标签 /td

我如何在 jquery 中解决这个问题。

对不起,我不擅长以适当的方式展示它。

【问题讨论】:

  • 我对asp不是很熟悉,能否把为列表项生成的html标记贴出来?
  • 需要查看 HTML。你能用asp将每个单选按钮及其标签包装成一个div吗?如果是这样,您需要选择所选单选按钮的父 div。

标签: jquery asp.net jquery-ui c#-3.0


【解决方案1】:

我认为你可以使用手风琴菜单。

Accordion menu

我认为这对你会有帮助。

谢谢。

【讨论】:

    【解决方案2】:

    如果你的html是这样的

     <label for="li1">Uno</label>
     <input type='radio' id='li1' value='li1'>
     <label for="li2">Dos</label>
     <input type='radio' id='li2' value='li2'>
    

    你可以这样做:

       $('[value=li2]').hide();
       $('[value=li2]').prev('label').hide();
    

    如果您可以像这样将每个标签和单选按钮包装在一个 div 中:

     <div>
     <label for="li1">Uno</label>
     <input type='radio' id='li1' value='li1'>
     </div>
     <div>
     <label for="li2">Dos</label>
     <input type='radio' id='li2' value='li2'>
     </div>
    

    那么你可以这样做:

      $('[value=li2]').parent().hide();
    

    【讨论】:

      【解决方案3】:

      $('[value=li2]').parent().hide();

      【讨论】:

      • 这可行,但如果我将 RepeatLayout 设置为 Flow 整个单选按钮列表将被隐藏。我想要两个布局的东西。
      • $('[value=li2]').hide(); $('[value=li2]').next().hide();这适用于 default 和 RepeatLayout="Flow"
      猜你喜欢
      • 2012-09-24
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      相关资源
      最近更新 更多