【问题标题】:Jquery Hidden Field in Table表中的jQuery隐藏字段
【发布时间】:2009-03-31 15:07:43
【问题描述】:

我想知道是否有人知道使用 jquery 访问表行中的隐藏字段(通过客户端 ID)的方法。

$("#tblOne").find("tr").click(function() {
            var worker = $(this).find(":input").val();
        });

我发现上述方法适用于只有一个输入的行,但我需要一些帮助来找出通过输入名称获取值的方法。

这是表格行的示例。我如何通过他们的 id 访问这两个字段?

<table id="tblOne">
<tr>
<td>
    <asp:HiddenField id="hdnfld_Id" Text='<% Eval("ID") %>'></asp:HiddenField>
</td>
<td>
    <asp:HiddenField id="hdnfld_Id2" Text='<% Eval("ID2") %>'></asp:HiddenField>
</td>
</tr> 
</table>

【问题讨论】:

  • 您的隐藏字段上确实有 runat="server" 不是吗?这只是一个错字吗? (没有它,你不会走得很远)

标签: javascript jquery row html-table hidden-field


【解决方案1】:

我通常使用正向查找来匹配 id,这种方法避免了需要客户端 id

(id 包含 foo) $(this).find("input[id*='foo']").val();

【讨论】:

    【解决方案2】:

    按照您现在的设置方式,您可以这样做:

    $('tr td', '#tblOne').eq(0).find(':input').val(); // find input in 1st TD
    $('tr td', '#tblOne').eq(1).find(':input').val(); // find input in 2nd TD
    

    使用它您不必担心输入的 ClientID。

    【讨论】:

      【解决方案3】:

      你可以这样做:

          $("#tblOne").find("tr").click(function() {
              var election = $(this).find("td").eq(0).html();
              var worker = $(this).find('input[name=theName]').val();
          });
      

      阅读本杰明·斯特林 (Benjamin Sterling) 撰写的这篇出色的文章 'How to get what you want using jQuery'。

      【讨论】:

      • 谢谢。我正在使用母版页,Asp.net 更改了 id 名称。有没有办法使用clientID?我试过使用 var worker = $(this).find('input[name=]').val();我收到以下错误。当前上下文中不存在名称“hdnfld_Id”。
      【解决方案4】:

      你为什么不简单地使用这个:

      jQuery("#<%=hdnfld_Id.ClientID%>")
      

      【讨论】:

        【解决方案5】:

        &lt;asp:HiddenField id="foo"&gt; 生成一个&lt;input type="hidden" id="foo"/&gt; 不是吗?你为什么不干呢

        $("#foo").val()
        

        ?

        我认为你需要解释一下你想要做的更好一点。如果你发现了

        $(this).find(":input").val();
        

        ...仅当您有一个输入时才有效,也许您正在寻找的是:

        $(this).find(":input").each(function() {
          // Prints the value of each input.
          alert($(this).val());
        }
        

        但就目前而言,您的问题不是很清楚。尝试编辑您的问题,并花时间准确解释您想要什么。

        【讨论】:

        • 嗯,我正在寻找一种方法来访问隐藏字段中的值,以获取表中一行上的点击事件。每个隐藏字段都有一个唯一的行标识符。我希望这能澄清一点。
        【解决方案6】:

        不是答案,但我在从表格单元格中提取隐藏字段值时遇到了难以置信的困难(当然使用该表格上的 tablesorter),所以我很高兴找到这行代码:

        $(this).find(":input").val();

        而且效果很好。

        我也使用“.live”函数,所以它甚至可以在大桌子上使用。

        谢谢!!!

        HLR

        【讨论】:

          【解决方案7】:

          我有三个选项卡,每个选项卡都有一个提交按钮,导致回发。在提交按钮的单击事件之后,我希望当前选项卡保持不变。

          第一步。

          在标签 div 中添加了一个 asp:HiddenField(“标签”div 包含所有三个包含我的标签内容的 div)。

          <asp:HiddenField ID="sel_tab" Value="" runat="server" />
          

          第 2 步。

          使用导致回发的每个按钮的点击事件更新了 sel_tab 的值。

          protected void cmdSaveDailyMeasure_Click(object sender, EventArgs e)
          {
              sel_tab.Value = "0";
          }
          protected void cmdSaveWeeklyMeasure_Click(object sender, EventArgs e)
          {
              sel_tab.Value = "1";
          }
          protected void cmdSaveMonthlyMeasure_Click(object sender, EventArgs e)
          {
              sel_tab.Value = "2";
          }
          

          第 3 步。 在我的 .js 文件中,我有以下代码

          // Tabs
          $(document).ready(function() {
              var iSelectedTab = $(this).find("input[id*='sel_tab']").val();
              if (iSelectedTab == null)
                  iSelectedTab = 0;    
              $('[id$=tabs]').tabs({ selected: iSelectedTab });
          });
          

          即使您使用母版页(我是),这也有效。不需要 部分。

          【讨论】:

            猜你喜欢
            • 2011-01-02
            • 2013-07-23
            • 2012-06-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-13
            • 2011-02-08
            • 1970-01-01
            相关资源
            最近更新 更多