This project has moved. For the latest updates, please go here.

Error: Column is not an input control or is not found on page. Autocomplete

Apr 3, 2013 at 2:58 PM

I'm trying to implement an autocomplete feature in my infopath form in sharepoint. Below is my code:
<script src="../Documents/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="../Documents/jquery.SPServices-0.7.0.min.js" type="text/javascript"></script>
<script type="text/javascript">

window.onload = function(){
    window.setTimeout(readyCall, 1000);

function readyCall(){

        sourceList: "States",
        sourceColumn: "Title",
        columnName: "Title",
        numChars: 2,
        ignoreCase: true,
        slideDownSpeed: 100,
        debug: true
These script references and script (above) are located directly below the tag:
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> 
of the newifs.aspx file (which I accessed with SharePoint Designer).

I can't for the life of me understand what the problem is. When I try to use the form, with this autocomplete script, a debug window is displayed telling me it can't find the column I have specified. i.e. "Column is not an input control or is not found on page."

I've tried different columns, while verifying that they are text fields and still I can't seem to get the script working.

Any help would be very appreciated. Please keep in mind I'm new to all these development technologies (JQuery, SharePoint, SharePoint Designer, InfoPath).

Apr 3, 2013 at 6:14 PM
InfoPath forms are rendered very differently than the standard list forms and the functions in SPServices aren't built to work with InfoPath forms.

I have a blog post about a very hacky way to do this with SPServices and jQueryUI, but you'll have to dig into the markup to make it work:

Apr 4, 2013 at 6:23 PM
Hi Marc!

Thanks so much for your reply! I tried your code as well but that didn't seem to work either. However, it was a step in the right direction because I didn't get the debug screen, and the autocomplete method was being executed. The new problem was that no matches were being found. In the end I used the following code which look very similar to your post, found at manoj's blog
var externalParties = [];
    operation: "GetListItems",
    async: false,
    listName: "GICS",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
    source: externalParties
Thanks again!
Apr 4, 2013 at 6:27 PM
Edited Apr 4, 2013 at 9:00 PM
Never a good idea to just copy/paste code without knowing what it is doing!

I'm sure that there were mismatches with the ids or some other differences in your page from the examples.

Apr 4, 2013 at 8:21 PM
You're probably right! I can't go back and verify but I trust you're a better judge than I.

I totally agree that copying and pasting code, without knowing what it is doing, is a very bad plan. Fortunately I do know what it's doing just not exactly how :)