Серверный элемент управления ASP.NET DropDownList не запускает jQuery .Change (), если выбран?

0

Я использую jQuery mobile для нашего мобильного сайта. Элемент управления Asp.net dropdownlist отображается как мобильный выбор jQuery.

HTML:

<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" Runat="Server" >
    <asp:DropDownList ID="ddlCom" class="ddlCom" name="ddlCom" runat="server">
    </asp:DropDownList>

    <table id="compTable"></table>

</asp:Content>

и Javascript:

$(document).ready(function () {
$('#<%=ddlCom.ClientID %>').select(function () {
    alert("it works");
});

$('.ddlCom').change(function () {
    alert("css works");
});

$('select[name=ddlCom]').change(function () {
    alert("css works");
});

$("select[id$=ddlCom]").change(function() {
    alert(" works");

});

ни один из них не будет срабатывать, когда я нажму и выберем форму с выпадающим списком. Что дает?

Благодаря,

РЕДАКТИРОВАТЬ:

Сгенерированный HTML:

<div class="ui-select">
<a href="#" role="button" aria-haspopup="true" data-theme="c" class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Finance Department</span><span class="ui-icon ui-icon-arrow-d ui-icon-shadow">
</span></span></a>
<select name="ctl00$MainContent$ddlCom" id="ctl00_MainContent_ddlCom" class="ddlCom" data-mini="true" tabindex="-1">
    <option value="1">......</option>
    <option value="2">.....</option>
    <option value="3">......</option>
</select></div>
  • 0
    Можете ли вы предоставить сгенерированный HTML для выпадающего списка?
  • 0
    ASP.NET любит подключаться к событиям. Вы можете использовать что-то вроде $('.ddlCom').off('change').on('change', function(){..}); очистить любую существующую привязку, но ваши валидаторы (смеется) могут перестать работать.
Показать ещё 2 комментария
Теги:
drop-down-menu
jquery-mobile

2 ответа

3
$('#<%=ddlCom.ClientID %>').change(function () {
    alert("it works");
});

Это будет работать, если вы измените его на "Изменить", как я.

также это

$('.ddlCom').change(function () {
    alert("css works");
});

если вы измените свое объявление в раскрывающемся списке, чтобы указать cssclass

<asp:DropDownList ID="ddlCom" CssClass="ddlCom" name="ddlCom" runat="server">
    </asp:DropDownList>

И это сработало бы, если бы у вас не было опечатки

$("select[id$='ddlCom']").change(function() {
    alert(" works");
});
  • 0
    Я все это перепробовал, ничего не работает, что странно. Пожалуйста, смотрите изменения для сгенерированного HTML. Я только изменил на select (), потому что change () не работает.
  • 0
    Тогда есть кое-что еще неправильно. Проверьте вашу консоль в Firebug или Chrome. Вы можете видеть это работает здесь jsfiddle.net/4u2dA
0

Оказывается, есть двойные ссылки на jQuery и jQuery mobile в разных версиях на главной странице и на заголовок страницы, чтобы она сломалась. Он работает так, как сейчас. Спасибо всем

Ещё вопросы

Сообщество Overcoder
Наверх
Меню