Convert text field to picklist in MS CRM
October 18, 2010 by Geron Profet
This function below describes how you can convert a text field into a picklist.This original script was developed by MS CRM 4.0 – Unleashed. I made a few changes to it so you can now save a picklist value while displaying the text. If no text array is passed than the values will be shown.
//*********************************************************
gConvertTextToPickList=function (controlId, valuearray, textarray) {
/*
Description: Funcion to convert a nvarchar (text) field into a picklist
Calls: AddPickListValues()
Returns: nothing
Example: var arrValues = ['1','2','3'];
var arrText = ['One','Two','Three'];
gConvertTextToPickList('<your_textfield>',arrValues, arrText);
*/
//Referance the Text field
var textControl = document.getElementById( controlId );
if (!textControl) {return;}
if (!textarray || (valuearray.length != textarray.length)) {
textarray = valuearray;
}
//Create a new Picklist (SELECT) control
var picklistControl = document.createElement( "SELECT" );
//Copy the Text field properties to the picklist
picklistControl.id = textControl.id;
picklistControl.req = textControl.req;
//Set Required Style, add the picklist values
picklistControl.className = "ms-crm-SelectBox "; //"selectBox " v3.0
AddPickListValues( picklistControl, valuearray, textarray);
//load the picklist selected value from the text field (saved) datavalue
picklistControl.value = textControl.DataValue;
textControl.parentElement.appendChild( picklistControl ); //append the picklist to the document
textControl.parentElement.removeChild( textControl ); //remove the text field , we don't need it anymore.
//*********************************************************
function AddPickListValues(picklistControl, valuearray, textarray) {
for( var i = 0 ; i < valuearray.length; i++ ){
//Create a new Option
var option = document.createElement( "OPTION" );
option.value = option.innerText = valuearray[i];
option.text = option.innerText = textarray[i];
picklistControl.appendChild( option ); //Add the option to the picklist
}
}
}
Related Posts:
Convert a text field to a button on a form in MS CRM
Add a helper / lookup button to a text field

