Skip to main content

jQuery Undetermined String Literal Error

By Sam Deering

JavaScript

Share:

😳 Ever felt a little embarassed sharing your JavaScript? Let's fix it.

Have you ever come upon this annoying error message: “undetermined string literal”.

undetermined-string-literal

Ok, i’ve got 3 occasions were you might run into this error and how to fix it for each specific case.

  1. Multiple Line Strings
  2. Wrong String Format (Bad Characters)
  3. Angle Brackets

Multiple Line Strings

If your trying to assign a string that covers multiple lines to a variable you might see the “Undetermined String Literal” error. To solve this you must use the JavaScript escape character backslash (“”) after each line to tell the interpreter where the line ends and to join the string together.

Another way is to simply split your string up into bits and add them together.

Wrong String Format (Bad Characters)

If your trying to assign HTML to a variable you might see the “Undetermined String Literal” error. It might be that you loaded the HTML from somewhere else via ajax and are now trying to use/inspect it. Use the following code to clean up the bad characters in the string before trying to assign it.

Angle Brackets

If your trying to use angle brackets (“>” & “< ") within a string you might see the "Undetermined String Literal" error when trying to submit the string data via ajax. [js] var contentQuery = 'first 10 location like “abc”‘;
//note: abc replaces the actual query
[/js]

It turns out it was the securequery angle brackets creating the error and I had to hack it (as such) by adding in the angle brackets (“< " & ">“) just before encoding and sending the request via AJAX (see below).

$.ajax({
  type: 'POST',
  url: '/ajax/abc',
  data: 'content=' + encodeURIComponent('< '+contentQuery+'>'),
  dataType: 'html',
  success: function(data){
	console.log(data);
	//display results
	$('#results').html(data);
  }
});

This might even be a bug in jQuery, not sure though. When you test in firebug it works though! So maybe not…

var fine = 'first 10 location like "abc"';
console.log(fine);

Sam Deering has 15+ years of programming and website development experience. He was a website consultant at Console, ABC News, Flight Centre, Sapient Nitro, and the QLD Government and runs a tech blog with over 1 million views per month. Currently, Sam is the Founder of Crypto News, Australia.

New books out now!

💁‍♀️ Fun Fact: Python was ranked #2 on a recent highest paid coders list. *


🤓 Ok. When did a code editor from Microsoft become kinda cool!?