Мне нужен комбинированный список для проекта ASP.NET, поэтому я решил использовать комбинированный список Ajax Control Toolkit (http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ComboBox/ComboBox.aspx).
Я не хочу использовать обратную передачу, поскольку не хочу, чтобы страница была перезагружена, но мне нужно знать, когда текст в текстовом поле изменяется, чтобы я мог обратиться к серверу, чтобы сохранить новый элемент списка.
Мне любопытно, как я связываю событие onchange или onblur с полем ввода, которое использует этот комбинированный список.
Это моя страница asp.net:
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<cc1:ComboBox ID="PlantDropDown" runat="server" OnInit="PlantDropDown_Init" DropDownStyle="DropDown"
AutoCompleteMode="SuggestAppend"
ItemInsertLocation="OrdinalText" AutoPostBack="false">
</cc1:ComboBox>
Обновление: я попытался использовать предложение, и я получаю эту ошибку:
$find("PlantDropDown") is null
[Break on this error] $find('PlantDropDown').add_propertyChanged(function(sender, e) {\r\n
Я использую jQuery для javascript, кстати, на случай, если это поможет.
Окончательное обновление:
Я получил его на работу благодаря помощи crescentfresh, и в конце у меня есть это в моем .aspx файле:
<input type="hidden" id="PlantDropDownID" value="<%= PlantDropDown.ClientID %>" />
И это в моем файле javascript, так как я не помещаю javascript в мой файл .aspx:
elem = document.getElementById('PlantDropDownID');
$find(elem.value).add_propertyChanged(function(sender, e) {
if (e.get_propertyName() == 'selectedIndex') {
var newValue = sender.get_textBoxControl().value;
}
})