1

我想知道是否有人知道使用 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>
4

7 回答 7

3

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

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

于 2010-11-10T15:48:33.007 回答
2

你可以这样做:

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

通读本杰明·斯特林(Benjamin Sterling)的这篇出色的文章“如何使用 jQuery 获得你想要的东西”。

于 2009-03-31T15:17:04.427 回答
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。

于 2009-03-31T17:57:29.347 回答
2

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

jQuery("#<%=hdnfld_Id.ClientID%>")
于 2009-08-26T13:27:29.747 回答
1

<asp:HiddenField id="foo">生成一个<input type="hidden" id="foo"/>不是吗?你为什么不做

$("#foo").val()

?

我认为您需要解释一下您要做得更好的事情。如果你发现

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

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

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

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

于 2009-03-31T17:53:20.087 回答
1

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

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

而且效果很好。

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

谢谢你!!!

HLR

于 2010-12-22T02:46:04.553 回答
1

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

第1步。

在标签 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 });
});

即使您使用母版页(我是),这也有效。不需要 <%=foo.ClientID%> 部分。

于 2011-02-01T20:32:13.847 回答