html页面调用js文件里的函数报错onclick is not defined处理方法

html页面调用js文件里的函数报错onclick is not defined处理方法今天处理 html 标签里的 onclick 功能的时候总是报错 UncaughtRefe dosaveisnotd 找了半天都没发现错在哪 最后发现原来是我写法不对 正确写法如下 html inputtype button value 立即登录 onclick dosave js

今天处理html标签里的onclick功能的时候总是报错:Uncaught ReferenceError: dosave is not defined(…)

找了半天都没发现错在哪,最后发现原来是我写法不对,正确写法如下:

html:

 

js:

 

 

dosave = function (){ alert("成功啦!"); }

错误写法一般有以下两种,很致命:

 

 

function dosave(){ alert("会报错!!"); }

 

 

var dosave = function (){ alert("会报错!!"); }

为什么会这样,因为:

 

——————————————————————分割线—————————————————————-

上面是2016年11月11日的博客原文,三年来这个帖子争议非常大,帮助了很多朋友,也坑了很多朋友。在此感谢大家的回复,我把所有评论内容总结一下,希望能有帮助。

1.这个问题很奇特。很多同学平常使用var dosave = function(){}和function dosave(){}都没问题,但是突然一天出现用不了的情况了,我当时就是这样的情况;还有的同学在HBuidlder运行没问题,换eclipse就不起作用。

2.这三种定义函数的写法都是正确的,只不过作用域不同。

3.我们知道var dosave = function(){}和function dosave(){}是等价的,是最常用的定义函数方式,区别在于function dosave(){}可以进行声明提升,而var dosave = function(){}必须先定义才能使用。

4.dosave = function(){}的写法会把dosave函数作为全局作用域函数,相当于windows对象作为他的作用域,所以可以被调用到。

5.有同学给出了一种解决办法,不过我当时就没用$(functiong{ }),所以对我的情况不管用:

1)定义的方法 用funcation 方法名(){} ,这样写没有问题,不过js中千万别把方法写在$(functiong{ })中,这样相当于方法中方法,所以查找不到。

2)将方法放在 $().ready(function () {});之外后,就可以正常执行了。

6.当大家遇到莫名报错时这三种定义函数的写法都试试吧,说不定能帮助到大家,算是提供一种思路。

再次感谢大家的深入研究和回复,有问题希望大家多多回复,我会继续跟进这个问题,把更好的答案提供给大家。谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213042.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:41
下一篇 2026年3月18日 下午6:41


相关推荐

  • id 生成器

    id 生成器应用场景全局流水号区分前后台订单号参考电商订单号设计的资料数据库主键[单调]递增可能考虑分库分表

    2022年6月16日
    43
  • java double转string

    java double转stringjava 中 double 转 string 可以用 Double toString d 的方式 但是 这种方式有隐藏的坑 请大家看仔细了 packagehello publicclassD publicstatic doubledou Stringdou str Double toString dou

    2026年3月20日
    2
  • idea右键没有run选项,无法运行main方法及启动springboot工程

    idea右键没有run选项,无法运行main方法及启动springboot工程idea右键没有run选项,无法运行main方法及启动springboot工程在idea中有的时候会从外部导入项目,导入成功后打开某个类,需要运行里面的main方法.按如常操作单击右键发现没有run选项。解决办法:选中你java文件所在的package单击右键选中MarkDirectoryas,然后选中SourcesRoot。例如我下图中的Thread1.java中的mai’n方法无法运…

    2022年5月6日
    291
  • 案例:EVE和ENSP对接LLDP协议「建议收藏」

    案例:EVE和ENSP对接LLDP协议「建议收藏」1.EVE与ENSP使用cloud对接LLDP协议(拓扑)2.思科开启LLDP(EVE需使用2018年后的L2/L3IOU才支持LLDP功能)Switch(config)#lldprun//思科全局运行开启lldpSwitch(config)#inte0/1Switch(config-if)#lldptransmitSwitch(config-if)#lldpreceive//接口下开启lldp传送与接受华为开启LLDP[Huawei]lldpenableInfo:Glo

    2022年5月5日
    89
  • Linux(ubuntu)下Pycharm配置python运行环境(编译器中导入虚拟环境)

    Linux(ubuntu)下Pycharm配置python运行环境(编译器中导入虚拟环境)Pycharm 配置 python 的运行环境 Linux ubuntu Windows 前言前段时间跑 python 代码 一直在编辑器中写 命令行中调用执行 如果写一些小程序还可以 但如果要搭建神经网络 用到 tensorflow 或 theano 这些深度框架的话 这样编辑器与命令行两头跑在 debug 时会特别痛苦 如果能将编译环境导入到编辑器中 直接在编辑器中调试 那么将使我们的代码调试过程大大

    2026年3月27日
    2
  • SpringBoot 介绍「建议收藏」

    SpringBoot 介绍「建议收藏」SpringBoot介绍目录1.简介2.WhySpringBoot1.简介    SpringBoot最开始基于Spring4.0设计,是由Pivotal公司提供的框架。    SpringBoot发展史:2003年RodJohnson成立Interface公司,产品是SpringFramework2004年,Spring框架开源,公司改名为SpringSource2008年,收购ApacheSer

    2026年2月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号