IE 9 and IE 10 Issue for Dropdown list with many items...Sharepoint 2010

Issue


$(document).ready(function () {

            // Country column
            var _countyName = "Country";

            //State Column
            var _stateName = "State";

            // Override the Country
            OverrideDropDownList(_countyName);

            //Set first value of the country as default.
            updateOriginalField(_countyName, "tempDDLName_" + _countyName);

            //Override for State
            OverrideDropDownList(_stateName);

            // Main Function
            function OverrideDropDownList(columnName) {

                // Construct a drop down list object
                var lookupDDL = new DropDownList(columnName);

                // Do this only in complex mode...
                if (lookupDDL.Type == "C") {

                    // Hide the text box and drop down arrow
                    lookupDDL.Obj.css('display', 'none');
                    lookupDDL.Obj.next("img").css('display', 'none');

                    // Construct the simple drop down field with change trigger
                    var tempDDLName = "tempDDLName_" + columnName;
                    if (lookupDDL.Obj.parent().find("select[ID='" + tempDDLName + "']").length == 0) {
                        lookupDDL.Obj.parent().append("");

                        lookupDDL.Obj.parent().find("select[ID='" + tempDDLName + "']").bind("change", function () {
                            updateOriginalField(columnName, tempDDLName);
                        });
                    }

                    // Get all the options
                    var splittedChoices = lookupDDL.Obj.attr('choices').split("|");

                    // get selected value
                    var hiddenVal = $('input[name=' + lookupDDL.Obj.attr("optHid") + ']').val()
                    if (hiddenVal == "0") {
                        hiddenVal = lookupDDL.Obj.attr("value")
                    }

                    // Replacing the drop down object with the simple drop down list
                    lookupDDL = new DropDownList(tempDDLName);

                    // Populate the drop down list
                    for (var i = 0; i < splittedChoices.length; i++) {
                        var optionVal = splittedChoices[i];
                        i++;
                        var optionId = splittedChoices[i];

                        var selected = (optionId == hiddenVal) ? " selected='selected'" : "";
                        lookupDDL.Obj.append("");
                    }
                }
            }

            // method to update the original and hidden field.
            function updateOriginalField(child, temp) {
                var childSelect = new DropDownList(child);
                var tempSelect = new DropDownList(temp);

                // Set the text box
                childSelect.Obj.attr("value", tempSelect.Obj.find("option:selected").val());

                // Get Hidden ID
                var hiddenId = childSelect.Obj.attr("optHid");

                // Update the hidden variable
                $('input[name=' + hiddenId + ']').val(tempSelect.Obj.find("option:selected").val());
            }

            // just to construct a drop down box object. Idea token from SPServces
            function DropDownList(colName) {
                // Simple - when they are less than 20 items
                if ((this.Obj = $("select[Title='" + colName + "']")).html() != null) {
                    this.Type = "S";
                    // Compound - when they are more than 20 items
                } else if ((this.Obj = $("input[Title='" + colName + "']")).html() != null) {
                    this.Type = "C";
                    // Multi-select: This will find the multi-select column control on English and most other languages sites where the Title looks like 'Column Name possible values'
                } else if ((this.Obj = $("select[ID$='SelectCandidate'][Title^='" + colName + " ']")).html() != null) {
                    this.Type = "M";
                    // Multi-select: This will find the multi-select column control on a Russian site (and perhaps others) where the Title looks like '????????? ????????: Column Name'
                } else if ((this.Obj = $("select[ID$='SelectCandidate'][Title$=': " + colName + "']")).html() != null) {
                    this.Type = "M";
                } else
                    this.Type = null;
            } // End of function dropdownCtl
        });

Popular posts from this blog

Custom Form Base Login Web Part With Sharepoint 2010

Real World Branding with SharePoint 2010 Publishing Sites