2013-10-08 3 views
1

Этот код на моей странице .aspx, и я использую auto complete для текстового поля.Получите значение из поля ввода в коде за

<script type="text/javascript"> 
    $(document).ready(function() { 
     SearchText(); 
    }); 
    function SearchText() { 
     $(".autosuggest").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "Preferences.aspx/GetAutoCompleteData", 
        data: "{'Name':'" + document.getElementById('txtSearch').value + "'}", 
        dataType: "json", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert("Error"); 
        } 
       }); 
      } 
     }); 
    } 
</script> 


<table style="width:auto"> 
    <tr> 
     <td> 
      <asp:Label ID="Label1" runat="server" Text="Please Type Student Name:"></asp:Label> 
     </td> 
     <td> 
      <input type="text" id="txtSearch" class="autosuggest" /> 
      <asp:TextBox ID="TextBox1" runat="server" Text=txtsearch Visible="true" class="autosuggest"></asp:TextBox> 
     </td> 
     <td> 
      <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /> 
     </td> 
    </tr> 
</table> 

Если я ставлю RUNAT = "Сервер" в

<input type="text" id="txtSearch" class="autosuggest" /> 

то автозаполнение не работает. Тег формы используется на главной странице.

Проблема решаемая используя имя свойства управления

Исходный код:

<input type="text" name="_name" /> 

    <asp:Button ID="btnShow" runat="server" Text="Show" onclick="btnShow_Click" /> 

CodeBehind:

protected void btnShow_Click(object sender, EventArgs e) 
{ 
    string strValue = Page.Request.Form["_name"].ToString(); 
    Response.Write(strValue); 
} 

Ссылка: http://www.etechpulse.com/2013/02/get-html-input-controls-value-server.html

Спасибо, ребята за вашу помощь.

+0

Вы хотите скопировать его при загрузке страницы? и проверить консоль, вы получаете какие-либо ошибки? –

+0

Выполняется операция ajax. Это не приведет к повторной обработке всей страницы. Вам нужно будет загрузить значения ответа в элемент управления. – Kami

ответ

2

Если вы используете MasterPage, тогда ASP.net автоматически создаст имя для каждого элемента управления и добавит его в ваш элемент управления. Чтобы получить уникальный идентификатор элемента управления, вам необходимо использовать JQuery ClientID.

Помещенный runat="server" но изменить функцию Jquery к (это будет извлекать вход с помощью ClientID):

function SearchText() { 
     $("#<%=txtSearch.ClientID%>").autocomplete({ 

Или в качестве альтернативы (предложенный DeeMac) использовать статический ClientIDMode.

+0

Это также жизнеспособная альтернатива для изучения статического ClientIDMode http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx –

+0

Благодаря @DeeMac добавит это к моему ответу:) – Zaki

+0

+1. Я считаю, что это ваше решение OP. –

0

Для получения текстового поля формы формы вам необходимо использовать серверный контроль.

<asp:TextBox ID="txtSearch" runat="server" ></asp:TextBox> 

вы можете также добавить ClientIDMode = «статический» в элементе управления сервера, чтобы сохранить ваш идентификатор точно так же, или вы можете использовать $("#<%=txtSearch.ClientID%>") получить dynamicaly генерироваться Id.

+0

Я не мог получить управление сервером для работы с class = "autosuggest". – user2345661

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