如何通过jquery查找函数获取所有asp隐藏字段控件id?

时间:2014-03-01 05:29:17

标签: c# javascript jquery asp.net

我正在使用ASP.NetC#中开发一个Web应用程序。在我的代码中有一个aspx页面和相关的JQuery代码在一个单独的js file在我的aspx页面中我有代码示例如下

<div id="areaHiddenField">
    <asp:HiddenField ID="hfESFullName" runat="server" />
    <asp:HiddenField ID="hfESTitle" runat="server" />
    <asp:HiddenField ID="hfESPhoneNumber" runat="server" />
    <asp:HiddenField ID="hfESOfficePhoneNumber" runat="server" />
    <asp:HiddenField ID="hfESMailID" runat="server" />
    <asp:HiddenField ID="hfESWebsite" runat="server" />
    <asp:HiddenField ID="hfESAddress1" runat="server" />
    <asp:HiddenField ID="hfESAddress2" runat="server" />
    <asp:HiddenField ID="hfESDisclaimer" runat="server" />
    <asp:HiddenField ID="hfESPhoto" runat="server" />
    <asp:HiddenField ID="hfESLogo" runat="server" />
    <asp:HiddenField ID="hfESDesignation1" runat="server" />
    <asp:HiddenField ID="hfESDesignation2" runat="server" />
</div>

现在我想对所有隐藏字段执行一些操作。在单独的.js文件中,我使用以下代码

$("#areaHiddenField").find('[id^="hf"]').each(function () {
    alert("hi");
});

但我没有从代码中得到任何回复。请帮帮我。

4 个答案:

答案 0 :(得分:4)

试试这个

$("#areaHiddenField").find("input[type='hidden']").each(function(){
  alert($(this).attr("id"));
});

如果您希望相同的代码正常运行,请将ClientIdMode = "static"添加到所有HiddenFields

答案 1 :(得分:0)

尝试:

$("#areaHiddenField input[type='hidden']").each(function () {
    alert("hi");
});

$("#areaHiddenField").find('input[id^=hf]').each(function () {
    alert("hi");
});

如果您的隐藏元素是直接子元素,那么最好使用children()

$("#areaHiddenField").children('input[id^=hs]').each(function () {
    alert("hi");
});

答案 2 :(得分:0)

只需在脚本上方添加 $(document).ready(function()

$(document).ready(function () {
     $("#areaHiddenField").find("[id^='hf']").each(function () {
       alert("hi");
    });
 });

它会起作用,我想你会错过它,否则它应该有效,因为你的脚本没有任何问题。

答案 3 :(得分:0)

可能是隐藏字段ID正在改变,因为它是服务器端而且它不是从hf开始..如果你有母版页然后它从ct100开始,那么检查隐藏字段id从哪个字开始...我签到我的页面与母版页完美配合...

<div id="areaHiddenField">
                    <asp:HiddenField ID="hfESFullName" runat="server" />
                    <asp:HiddenField ID="hfESTitle" runat="server" />
                    <asp:HiddenField ID="hfESPhoneNumber" runat="server" />
                    <asp:HiddenField ID="hfESOfficePhoneNumber" runat="server" />
                    <asp:HiddenField ID="hfESMailID" runat="server" />
                    <asp:HiddenField ID="hfESWebsite" runat="server" />
                    <asp:HiddenField ID="hfESAddress1" runat="server" />
                    <asp:HiddenField ID="hfESAddress2" runat="server" />
                    <asp:HiddenField ID="hfESDisclaimer" runat="server" />

                    <asp:HiddenField ID="hfESPhoto" runat="server" />
                    <asp:HiddenField ID="hfESLogo" runat="server" />
                    <asp:HiddenField ID="hfESDesignation1" runat="server" />
                    <asp:HiddenField ID="hfESDesignation2" runat="server" />
                </div>

<script type="text/javascript">

 $("#areaHiddenField").find('[ID^="ctl00_ContentPlaceHolder1_"]').each(function () {debugger
var controlName = $(this).attr("ID");
var get_id=controlName.replace("ctl00_ContentPlaceHolder1_","");
alert(get_id);
var set_val=document.getElementById(""+ controlName +"");
if(get_id=="hfESFullName")
{
set_val.value="xyz";
}
else if(get_id=="hfESTitle")
{
set_val.value="abc";
}