Uncaught ReferenceError: getFormData is not defined at HTMLButtonElement.onclick

场景:

HTML
jQuery


问题描述

使用HTML标签的属性onclick调用JavaScript中方法时报错
Uncaught ReferenceError: getFormData is not defined at HTMLButtonElement.onclick

<button type="button" onclick="getFormData()">提交</button>
<script src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
	$(function() {
		function getFormData() {
			var serializeResult = $("#userform").serialize();
			alert(serializeResult);
		}
	});
</script>

原因分析:

将getFormData()方法定义在了入口函数中,导致作用域发生改变,onclick无法找到该方法。


解决方案:

方法一:

仅适用于想在入口函数中定义方法,不建议。
使用匿名函数且不使用var关键字声明,默认为windows对象,作用域为全局

$(function() {
	getFormData = function() {
		var serializeResult = $("#userform").serialize();
		alert(serializeResult);
	}
});

方法二:

将方法直接定义在JavaScript中,不在函数中定义函数。

你可能感兴趣的:(javascript,前端,jquery)