+ Start a Discussion

Query on picklist is not working using Special character

We have a custom field "Priority" of type Picklist in contact object.
If we execute query using Ajax  using sforce.connection.query in the VF page using special character then it gives an error in the case of picklist field

I give an example
Paste the following code in your org
For that first create a custom fild name Priority  of type Picklist Type in your Contact object having value "one", "two" ,"Folder~`!@#$%^$-&*()_+{}|":<>?/.,;'\][fsdsvghchx"
now create a contact in which Priority field having value "Folder~`!@#$%^$-&*()_+{}|":<>?/.,;'\][fsdsvghchx"
<apex:page standardController="contact" extensions="testclass" id="pg">
    <script src="/soap/ajax/16.0/connection.js" type="text/javascript"></script>
    <script src="/soap/ajax/16.0/apex.js" type="text/javascript"></script>    
    <apex:form id="frm">
        <p><b>text1</b></p><input type="text"  id="box"/>
        <input type="button" value="ClickMe" id="box12" onclick="callfun()"  />
        <apex:outputPanel id="inputhiddenfld2">
                <apex:inputText value="{!passdata}" id="hid2" />
            sforce.connection.sessionId  = "{!$Api.Session_ID}";
            var check = '';
            function callfun()
                    check = document.getElementById('box').value;
            function calloncom()
                        var check1 = document.getElementById('pg:frm:hid2').value;
                        var query = "Select Id, LastName, FirstName From Contact where Contact.Priority__c like \'" +check1+"%\'";  //query2
                        var forerror = sforce.connection.query(query);
                        alert('forerror     '+forerror);
                        alert('err   '+err);
        <apex:actionFunction name="callname" action="{!cont}" reRender="inputhiddenfld2,hid2" oncomplete="calloncom()">
            <apex:param name="passvalue" value="" assignTo="{!passvaluecont}"/>


public with sharing class testclass
    public string passvaluecont{get; set;}
    public string passdata{get; set;}
    public testclass(ApexPages.StandardController controller)
    public void cont()
        passdata = String.escapeSingleQuotes(passvaluecont.trim());

Now Enter value "Folder~`!@#$%^$-&*()_+{}|":<>?/.,;'\][fsdsvghchx" in the text box named as "text1" and then click on button "ClickME"
it give an error, in normal case it working fine(without special character)
I just want to know how we handel the special character so that this query execute properly using Picklist having like operator
if any thing is not clear then please contact me on
Email- abhishek0674@gmail.com