Asp隐藏字段从javascript参数得到空值

本文关键字:空值 参数 javascript 隐藏 字段 Asp | 更新日期: 2023-09-27 18:13:57

我试图将dropdown-menu中的值选择参数传递到hidden-field。我已经跟踪代码看到hidden-field值,它总是得到空值。

我还使用浏览器调试器跟踪JavaScript代码,没有发生错误。什么错了吗?

JavaScript

$(document).ready(function (e) {
    $('.search-panel .dropdown-menu').find('a').click(function (e) {
        e.preventDefault();
        var param = $(this).attr("href").replace("#", "");
        var concept = $(this).text();
        $('.search-panel span#search_concept').text(concept);
        $('[id$=hdnSearchParam]').val(param);
    });
});

后台代码

protected void btnsearch1_Click(object sender, EventArgs e)
{
    grid.DataSource = U.Search(hdnSearchParam.Value, txtsearch.Text);
    grid.DataBind();
}

标记
<div>
    <div class="col-xs-8">
        <div class="input-group">
            <div class="input-group-btn search-panel">
                <button type="button" class="btn btn-default dropdown-toggle" 
                    data-toggle="dropdown">
                    <span id="search_concept">Filter by</span> <span class="caret"></span>
                </button>
                <ul class="dropdown-menu" role="menu">
                    <li><a href="#UserName">UserName</a></li>
                    <li><a href="#its_equal">It's equal</a></li>
                    <li><a href="#greather_than">Greather than ></a></li>
                    <li><a href="#less_than">Less than < </a></li>
                    <li class="divider"></li>
                    <li><a href="#all">Anything</a></li>
                </ul>
            </div>
            <input type="hidden" name="search_param" value="all" id="search_param" />
            <asp:TextBox ID="txtsearch" runat="server" 
                class="form-control" 
                name="x" 
                placeholder="Search term...">
            </asp:TextBox>
            <span class="input-group-btn">
                <asp:LinkButton ID="btnsearch" runat="server" 
                    CssClass="btn btn-primary"
                    OnClick="btnsearch1_Click">
                    <span class="glyphicon glyphicon-search"></span>
                </asp:LinkButton>
            </span>
        </div>
    </div>
</div>
<asp:HiddenField ID="hdnSearchParam" runat="server" />

Asp隐藏字段从javascript参数得到空值

您无法访问ASP。. NET控件从jQuery/Javascript无需更新你的代码。ASP。NET在运行时更改控件的id。您有两个选项:

  1. 使用ClientID获取控件的实际id

    var hiddenField = $("#<%= hdnSearchParam.ClientID %>");
    
  2. 设置ClientIDMode为static,你的jQuery将按原样工作。(假设你使用的是。net 4.0或更高版本)

    <asp:HiddenField ID="hdnSearchParam" runat="server" ClientIDMode="Static" />
    

关于ClientIDMode的更多信息