ASP.NET DropDownList服务器控件在选中时不会触发jQuery .Change()?

时间:2014-02-25 22:17:28

标签: javascript jquery asp.net jquery-mobile drop-down-menu

我正在为我们的移动网站使用jQuery mobile。 Asp.net下拉列表控件显示为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>

2 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分:0)

事实证明,在Masterpage和页面标题中有不同版本的jQuery和jQuery mobile的双重引用,因此它破坏了。它现在应该正常工作。谢谢大家