Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 352
  • Last Modified:

I have a perplexing 'autoSave not defined' error...

Console Error:
autoSave is not defined
[Break on this error] var timeout = setTimeout('autoSave()',ms);

I've tried several different 'fixes', but this error persists.  The ajax call returns as it should.  The error occurs post to the click function.

I believe the error is occurring at line 13.
<cfajaximport>

<script type="text/javascript">

	$(document).ready(function() {
	
		function autoSave(){
			ColdFusion.Ajax.submitForm("finalRender", "/admin/emailBeta/act/act.save.email.cfm", callBack, callError);
			autoSaveEvery(10000);
		}
		
		function autoSaveEvery(ms) {
			var timeout = setTimeout('autoSave()',ms);
		}
		
		function callBack(res) {
			if (res) {
			document.getElementById('messageArea').innerHTML = 'Autosaved at ' + nowFormated();
			}
		}
		
		function callError(res) {
			if (res) {
			document.getElementById('messageArea').innerHTML = 'Autosaved at ' + nowFormated();
			}
		}
		
		function nowFormated(){
			var now = new Date();
			var ampm = "AM";
			var hour = new Number(now.getHours());
			if (hour > 12) {
				ampm = "PM";
				hour = hour - 12;
			} else if (hour == 0) {
				hour = 12;
			}
			var minutes = new Number(now.getMinutes());
			if (minutes <= 9) {
				minutes = "0" + minutes;
			}
			var seconds = new Number(now.getSeconds());
			if (seconds <= 9) {
				seconds = "0" + seconds;
			}
			return hour + ":" + minutes + ":" + seconds + " " + ampm;
		}
		
		$("#saveEmail").click(function () {
			autoSave();
		});
	
	});

</script>

<div id="messageArea">Message Area</div>

Open in new window

0
brianmfalls
Asked:
brianmfalls
1 Solution
 
Justin MathewsCommented:
Change:

function autoSaveEvery(ms) {
      var timeout = setTimeout('autoSave()', ms);
}

To:

function autoSaveEvery(ms) {
      var timeout = setTimeout(autoSave, ms);
}

0
 
HainKurtSr. System AnalystCommented:
this one works fine...
so try to remove

$(document).ready(function() {
..
}

wrapper...
<script>
function autoSave(){
  alert(1);
}
		
var timeout = setTimeout('autoSave()',1000);
</script>

Open in new window

0
 
brianmfallsAuthor Commented:
Thanks jmatix, that did the trick.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now