Skip to main content
Participant
February 4, 2021
Answered

Coldfusion 2018 compiler

  • February 4, 2021
  • 3 replies
  • 306 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 has been closed for replies.
    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)