2015-09-21 4 views
2

Я пытаюсь передать значение выбранного параметра в dropdown-menu в hidden-field. Я проследил код, чтобы увидеть значение hidden-field, и он всегда получает пустое значение.asp hiddenfield get empty value from javascript параметр

Также я прорисовал код 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); 
    }); 
}); 

Code-за

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

Markup

<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" /> 
+0

Я не вижу скрытый элемент 'hdnSearchParam'. Существует скрытый ввод 'search_param', в этом случае просто' $ ('# search_param'). Val (param); ' –

+0

Я забыл добавить в код ayman

+0

можно попробовать ... http://stackoverflow.com/questions/32680665/i-get-empty-value-from-asp-hidden-field/32685980#32685980 – g2000

ответ

2

Вы не можете получить доступ к управления ASP.NET с JQuery/JavaScript без обновления для вашего кода. ASP.NET изменяет идентификатор элемента управления во время выполнения. У вас есть два варианта:

  1. Используйте ClientID, чтобы получить фактический идентификатор элемента управления

    var hiddenField = $("#<%= hdnSearchParam.ClientID %>"); 
    
  2. Set ClientIDMode к статическим и ваш Jquery будет работать как есть. (Предполагая, что вы используете .NET 4.0 или выше)

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

Подробнее о ClientIDMode

+0

, что не работает для меня в моем случае Я использую asp.net usercontrol – dewelloper

+0

@ HamitYıldırım OP не спрашивал о пользовательских элементах управления. Предлагаю вам задать новый вопрос. –

Смежные вопросы