Skip to main content
Participant
February 4, 2021
Answered

Coldfusion 2018 compiler

  • February 4, 2021
  • 3 replies
  • 314 views

Within a cfm, I have a script section and the pre-compiler is throwing this error - it is not recognixing that $("#selectname") is valid invalid token at the second ". Any ideas on how to go around the problem? 

 

 

 

    This topic is closed to new replies. Start a new post to keep the conversation going.
    Correct answer BKBK

    If the Javascript is not part of CF code, then use single #.

    If the Javascript is part of CF code (for example, within cfoutput tags), then use ## instead of #.

     

    testPage1.cfm
    
    <!--- 
    If Javascript is not part of CF code, then use single # 
    --->
    <script type="text/javascript" language="Javascript">
    $( function(){
     
      $("#selectname").autocomplete({
        source: arrNames,
        select: function(event, ui) {
          $("#selectedname").val(ui.item.value);
        },
        
      });
      
    });
    </script>
    
    
    testPage2.cfm
    
    <!--- 
    If Javascript is part of CF code (for example, 
    within cfoutput tags), then use ## 
    --->
    <cfoutput>
    <script type="text/javascript" language="Javascript">
    $( function(){
     
      $("##selectname").autocomplete({
        source: arrNames,
        select: function(event, ui) {
          $("##selectedname").val(ui.item.value);
        },
        
      });
      
    });
    </script>
    </cfoutput>

     

     

     

     

    3 replies

    Participant
    February 5, 2021

    Thanks for the quick replies - have yourselves a great day.

    Dave

    BKBK
    Community Expert
    BKBKCommunity ExpertCorrect answer
    Community Expert
    February 5, 2021

    If the Javascript is not part of CF code, then use single #.

    If the Javascript is part of CF code (for example, within cfoutput tags), then use ## instead of #.

     

    testPage1.cfm
    
    <!--- 
    If Javascript is not part of CF code, then use single # 
    --->
    <script type="text/javascript" language="Javascript">
    $( function(){
     
      $("#selectname").autocomplete({
        source: arrNames,
        select: function(event, ui) {
          $("#selectedname").val(ui.item.value);
        },
        
      });
      
    });
    </script>
    
    
    testPage2.cfm
    
    <!--- 
    If Javascript is part of CF code (for example, 
    within cfoutput tags), then use ## 
    --->
    <cfoutput>
    <script type="text/javascript" language="Javascript">
    $( function(){
     
      $("##selectname").autocomplete({
        source: arrNames,
        select: function(event, ui) {
          $("##selectedname").val(ui.item.value);
        },
        
      });
      
    });
    </script>
    </cfoutput>

     

     

     

     

    Charlie Arehart
    Community Expert
    Community Expert
    February 5, 2021

    Use ## where you are using #.

     

    While your code is all fine js code, if this is in a cfm page, cf sees the # as the start of a variable or expression. That's where it would complain.

     

    Using two #'s would "escape" the use of a single one.

     

    Let us know of that solves things. 

    /Charlie (troubleshooter, carehart. org)