SharePoint Lookup Drop-Down Cannot Be Clicked in IE11

Posted in: Blog, SharePoint 2010, SharePoint 2010 Errors, SharePoint 2013, SharePoint 2013 Errors |

No comments

INTRODUCTION

My client has just upgraded their workstations to IE11. They’re currently running SharePoint 2010 for their Intranet and not looking to upgrade any time soon. So as you know, IE11 causes a lot of bugs. One of them is, the lookup drop-down control is not clickable if you have more than 10 items in the lookup list.

Some people suggest to put this tag:

<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />

But this also introduces other bugs within the custom master page.

Another suggestion is to add the site in the Compatibility View Settings. Unfortunately, this is not always doing the job.

 

RESOLUTION

The only resolution I found was to use the JavaScript below. When a lookup drop-down is rendered, if the number of lookup items is less than 10 then it would render as a normal HTML Select. However, when items are more than 10, it renders as TextBox such as below:

<input name=”ctl00$m$g_0d06ad02_586f_4663_903f_f80a237ae8b9$ctl00$ctl05$ctl00$ctl00$ctl00$ctl04$ctl00$ctl01″ type=”text” value=”My Custom Field” id=”ctl00_m_g_0d06ad02_586f_4663_903f_f80a237ae8b9_ctl00_ctl05_ctl00_ctl00_ctl00_ctl04_ctl00_ctl01″ class=”ms-lookuptypeintextbox” onfocusout=”CoreInvoke(‘HandleLoseFocus’)” opt=”_Select” title=”My Custom Field” optHid=”MyCustomField_Hidden” onkeypress=”CoreInvoke(‘HandleChar’)” onkeydown=”CoreInvoke(‘HandleKey’)” match=”” choices=”(None)|0|LeadershipBlogImages|1|TESTVALUE1|11|TESTVALUE2|10|TESTVALUE3|12|Leadership Update Banner|2|TESTVALUE4|9|TESTVALUE5|7|Profile Test User|3|Test 1|13|Test 10|20|Test 11|21|Test 12|22|Test 13|23|Test 14|24|Test 15|25|Test 2|14|Test 3|15|Test 4|16|Test 5|17|Test 6|18|Test 7|4|Test 8|5|Test 9|19″ onchange=”CoreInvoke(‘HandleChange’)” />

Then it uses the CoreInvoke() method to transform it into a drop-down.

The resolution is to create a JavaScript that renders the TextBox above as a normal HTML combo box. Put below before the closing </body> tag:

NOTE: Please be mindful of the encoding of WordPress when you copy/paste the text below. I suggest you copy/paste to Notepad first and fix some of the encoded characters before you use it on your master page.

<script type=”text/javascript”>

var scriptQuery = jQuery.noConflict();

scriptQuery(“input[class=’ms-lookuptypeintextbox’]”).each(function () {

var columnName = scriptQuery(this).attr(‘title’);

OverrideDropDownList(columnName);

});

 

 

// 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 = “_” + columnName;

if (lookupDDL.Obj.parent().find(“select[ID='” + tempDDLName + “‘]”).length == 0) {

lookupDDL.Obj.parent().append(“<select name='” + tempDDLName + “‘ id='” + tempDDLName + “‘ title='” + tempDDLName + “‘></select>”);

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 = scriptQuery(‘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(“<option” + selected + ” value='” + optionId + “‘>” + optionVal + “</option>”);

}

}

}

 

// 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

scriptQuery(‘input[name=’ + hiddenId + ‘]’).val(tempSelect.Obj.find(“option:selected”).val());

}

 

// just to construct a drop down box object. Idea taken from SPServces

function DropDownList(colName) {

if ((this.Obj = scriptQuery(“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’

}

// Simple – when they are less than 20 items

if ((this.Obj = scriptQuery(“select[Title='” + colName + “‘]”)).html() != null) {

this.Type = “S”;

// Compound – when they are more than 20 items

}

else if ((this.Obj = scriptQuery(“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 = scriptQuery(“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 ‘Russion stuff: Column Name’

}

else if ((this.Obj = scriptQuery(“select[ID$=’SelectCandidate’][Title$=’: ” + colName + “‘]”)).html() != null) {

this.Type = “M”;

}

else

this.Type = null;

}

</script>

 

Please note that I grabbed the code above from TechNet article:

https://social.technet.microsoft.com/Forums/sharepoint/en-US/c5b179e3-6ebd-4d08-91c5-54155c50e376/lookup-type-field-rendered-as-input-instead-of-select-in-ie?forum=sharepointgeneralprevious

 

Hope this helps,

Tommy

Written by

A web solution expert who has passion in website technologies. Tommy has been in the web industry for more than 10 years. He started his career as a PHP developer and has now specialized in ASP.NET, SharePoint and MS CRM. During his career he has also been in many roles: system tester, business analyst, deployment and QA manager, team and practice leader and IT manager.

No Comments Yet.

Leave a Reply

You must be logged in to post a comment.

Our Services

We provides you the best Services in our themes.

  • Click on the link below to see a full list of clients which we have developed solutions and provided consultancy for.

    READ MORE

  • We are solution-centered and not application-centered.

    READ MORE

  • Being creative and having fun and yet still delivering a fantastic service is the center of our values.

    READ MORE

  • TFS Consulting Services guarantees delivery that is within budget and deadline or you engage us for free.

    READ MORE

Implementing IT does not have to be difficult.

As long as you have the right methodologies

We have heard a lot of complaints from our clients that IT a lot of the times give them headache. The issues range from over-budget implementation, server is too hard to maintain, application is not user friendly, features not complete and many others. If you have ever experienced similar situations, don’t worry. This is why TFS Consulting Services is here. We exist to help clients implementing a successful IT solution. We have various methodologies which we have proven working in delivering a successful IT implementation. Below is the list of some of our key service offerings:
  • Planning and Methodologies

    Implementing IT solution does not have to be difficult. TFS Consulting Services has a lot of resources on planning and methodologies that will ensure successful delivery of your IT solution. TFS Consulting Services has been around in the web industry for more than 10 years and has experienced all the successes and failures of various type of IT deployment.

    read more

  • Technical Resource

    Do you need a technical resource? TFS Consulting Services can also provide you with technical resource for developing ASP.NET (C# and VB.NET), SharePoint (2003, 2007, 2010, 2013) and MS CRM applications. Our resource is an Microsoft Certified Personnel (MVP) and Microsoft Certified Technology Specialist (MCTS) in all ASP.NET, SharePoint and CRM.

    read more

  • IT Consulting & Advice

    Make sure your IT implementation is robust and scalable. TFS Consulting Services can provide consulting and advice on industry’s best practice on various web-related areas such as website security, design and usability, application-specific (such as SharePoint)’s best practice, Search Engine Optimisation (SEO), coding standards and many others.

    read more

  • Solution Development

    Finally TFS Consulting Services provides you with solution development service. We mainly work with Microsoft technologies (ie. .NET and SQL Server), however we are also capable of developing with PHP and MySQL. If you ever need any business process automation, integration and solution development work,  we are the trusted expert you should go to.

    read more

For more detailed service offerings please visit our Solutions page.

Testimonials

  • I’m happy to recommend Tommy as a knowledgeable and diligent developer.

    Mike Stringfellow, Vivid Group
  • Tommy has a lot of great ideas that can be delivered into great products. It’s a pleasure working with him because he has a broad knowledge about available technologies out there and he knows what’s best for the client’s needs. He just knows how to work effectively and efficiently.

    Teddy Segoro, Student Edge
  • I’ve worked with Tommy over the past 6 months and have found his approach to development (especially SharePoint) absolutely outstanding. Tommy goes beyond the boundries of typical software development with his ability understand what a client requires and then build it into fully fledged software solution. Coupled with his professional “Best Practice” approach, you get Continue Reading

    Michael Bonham, DSC-IT

Contact us

Tommy Segoro
tommy@tfsconsulting.com.au
+61 404 457 754

   

© TFS Consulting Services 2024. All rights reserved.

www.incorporator.com.au