JQuery代码无法在IE 8中运行

时间:2011-02-01 05:42:20

标签: asp.net jquery webforms

此代码在firefox中运行,但在IE 8上它不返回任何内容

<script type="text/javascript">

$(document).ready(function(){

var pageUrl = '<%=ResolveUrl("~/test/test.aspx")%>';

   // Test
        $('#<%=ddlTest.ClientID%>').change(function(){
            var trgId = $(this+'input:checked').val();

            $.ajax({
                type: "POST",
                url : pageUrl+ '/getRecs',
                data : '{categ: "' +trgId + '"}',
                contentType:"application/json; charset=utf-8",
                dataType:"json",
                success:function(msg)
                    { 
                        bindCategories(msg)
                    }
                });
        });
});

$('#divLoad').ajaxStart(function() {
    $(this).show();
});

$('#divLoad').ajaxStop(function() {
    $(this).hide();
});

function bindCategories(msg)
        {
             if(msg.hasOwnProperty("d"))
                alert(msg.d);
             else
             {
                 $('select[id$=<%=ddlTrg.ClientID %>] > option').remove();

                 $.each(msg, function() {
                    $('#<%=ddlTrg.ClientID %>').append($('<option></option>').val(this['Id']).html(this['Name']));
                 });
             }
        }

</script>`

1 个答案:

答案 0 :(得分:1)

这条线看起来不对吗?

var trgId = $(this+'input:checked').val();

this是一个html元素,所以你不能像你一样使用它。

你的意思是:

var trgId = $('#' + this.id).val();

var trgId = $(this).find('input:checked').val();