场景:
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中,不在函数中定义函数。