JQuery 1.8.3。选择器功能在IE中不起作用

时间:2014-05-27 19:27:01

标签: jquery asp.net ajax

脚本

$('#ListBox1 option').click(function () {
    debugger;
    $.ajax({
        url: '/Service/AddEditService.aspx/GetPDF',
        data: JSON.stringify({ "fileName": $(this).attr("value") }),
        dataType: "json",
        contentType: "application/json",
        cache: false,
        type: 'POST',
        success: function (msg) {
            window.open('../GeneratePDF.aspx?fileName=' + msg.d);
        },
        error: function (msg) {
            alert("error");
        }
    });
});

调试器行永远不会在IE浏览器中出现,但在Chrome和Firefox中也是如此。

.ASPX

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ListBox ID="ListBox1" runat="server"  ClientIDMode="Static"/>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

是否存在已知错误或其他内容?我似乎无法在网络上的任何地方找到答案。

1 个答案:

答案 0 :(得分:1)

选择器似乎工作正常,可以看出:

$('#ListBox1 option').first().css('background-color', 'red');

相反,onclick不会触发选项。这可能是对ie的限制。您可以在列表框中添加onclick,但不能选择:

$('#ListBox1').click(function () {
    alert('listbox');
});

示例:http://jsfiddle.net/25HeW/2/

如你所说,这适用于chrome,但不是ie。

更新: 如果您正在查找选择了哪个项目,可以使用以下内容

$('#ListBox1').click(function () {
    var selected = this.options[this.selectedIndex]
    var text = 'value: ' + selected.value + ' text: '+ selected.label;
    alert(text);
});