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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值