Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery UI autocomplete IE 7 issue

Tags:

jquery-ui

I am using jquery UI autocomplete. It works in all other browsers FF, Chrome etc except IE7. Works for higher versions of IE as well but IE7 gives the below error:

SCRIPT3: Member not found.
jquery.min.js, line 2 character 30636

This is my function:

   $('input.autocomplete').each( function() {
   var $input = $(this);

   // Set-up the autocomplete widget.
   var serverUrl = $input.data('url');

$(this).autocomplete({
   source: function( request, response ) { 

    var countrySelect = $("#countrySelect").val();

 if($input.attr('id') == 'searchJobPostalCode'){

    countrySelect = $("#searchJobCountrySelect").val();

    }else if($input.attr('id') == 'searchPeoplePostalCode'){

    countrySelect = $("#searchUserCountrySelect").val();

    }
    $.ajax({
                url: serverUrl,
                dataType: "json",
                data: {
                    term: request.term,
                    countrySelect: countrySelect
                },
                success: function( data ) {
                        $input.removeClass( "ui-autocomplete-loading" );
                        response( $.map( data, function( item ) {
                        if(typeof item.companyName != 'undefined'){
                            return {
                                label: item.companyName,
                                value: item.companyName,
                                id: item.companyID
                            }
                    }

                        if(typeof item.locationId != 'undefined'){
                            return {
                                label: item.postalCode +','+item.placeName+','+item.adminName1+','+item.countryCode,
                                value: item.postalCode +','+item.placeName+','+item.adminName1+','+item.countryCode,
                                postalCode: item.postalCode,
                                city: item.placeName,
                                state: item.adminName1,
                                country: item.countryCode
                            }
                    }


                        //to show user alias autocomplete on compose message
                        if(typeof item.userAlias != 'undefined'){
                                    var label1 = item.userAlias;
                                    if(typeof item.city != 'undefined'){
                                        label1 = label1+','+item.city;
                                    }
                                    if(typeof item.state != 'undefined'){
                                        label1 = label1+','+item.state;
                                    }
                                    if(typeof item.country != 'undefined'){
                                        label1 = label1+','+item.country;
                                    }

                            return {
                                label: item.userAlias,
                                userAlias: item.userAlias
                            }
                    }

                    }));
                }
            });
        },
        minLength: 3,cacheLength:0,keyDelay:900,
        select: function( event, ui ) {

        $("#companyId").val(ui.item.id);

        if(typeof ui.item.userAlias != 'undefined'){
            $(".toUser").val(ui.item.userAlias);
        }

        if(typeof ui.item.postalCode != 'undefined'){
                $("#postalCode").val(ui.item.postalCode);
                $("#city").val(ui.item.city);
                $("#state").val(ui.item.state);
                $("#country").val(ui.item.country);


                    if($input.attr('id') == 'searchJobPostalCode'){

                                $("#searchPostalCodeJobsSearch").val(ui.item.postalCode);
                                $("#searchCityJobsSearch").val(ui.item.city);
                                $("#searchStateJobsSearch").val(ui.item.state);
                                $("#searchCountryJobsSearch").val(ui.item.country);

                    }else if($input.attr('id') == 'searchPeoplePostalCode'){

                                $("#searchPostalCodePeople").val(ui.item.postalCode);
                                $("#searchCityPeople").val(ui.item.city);
                                $("#searchStatePeople").val(ui.item.state);
                                $("#searchCountryPeople").val(ui.item.country);

                    }


        }
        },
                change: function( event, ui ) {
                if($(this).attr('id') !='companyName'){
                        if ( ui.item == null) {
                                valid = false;
                            }else{
                                valid = true;
                            }
                            if ( !valid ) {
                                // remove invalid value, as it didn't match anything
                                $( this ).val( "" );
                                select.val( "" );
                                input.data( "autocomplete" ).term = "";
                                return false;
                            }
                        }
        },
        open: function() {
            $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
        },
        close: function() {
            $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
            $( this ).removeClass( "ui-autocomplete-loading" );

        }
    });

});

I tried to debug and it errors out at line : $(this).autocomplete({

Any idea? Thanks in advance

like image 409
Jan Birds Fly Avatar asked Apr 12 '12 01:04

Jan Birds Fly


1 Answers

Looks like the problem is with my OS. I had installed Windows 8 consumer preview and was running IE using dev tools in IE7 compatibility. It works in windows 7. thanks.

like image 153
Jan Birds Fly Avatar answered Dec 02 '22 20:12

Jan Birds Fly