错误示例:

  1. <a href="javascript:waterLineEdit(${goods.goods_id})" >修改 </a>
  2. <!-- 浏览器中会实际是下面的那样 -->
  3. <a href="javascript:waterLineEdit(20151333)" >修改 </a>

本来数字是20151333,点击修改应该获取20151333这个才对。但是传到后台却不是这个数字。很郁闷。然后百度了一下

A标签调用js函数写法总结:

1、第一种写法
  1. href="javascript:js_method();"

这是常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅

会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行
javascript语句
 
2、第二种写法

  1. href="javascript:void(0);" onclick="js_method()"

这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行js函数,而void是一个操作符,void(0)返回

undefined,地址不发生跳转。而且这种方法不会像第一种方法一样直接将js方法暴露在浏览器的状态栏。
 
3、第三种写法
  1. href="javascript:;" onclick="js_method()"

这种方法跟跟2种类似,区别只是执行了一条空的js代码。

4、第四种写法

  1. href="#" onclick="js_method()"

这种方法也是网上很常见的代码,#是标签内置的一个方法,代表top的作用。所以用这种方法点击后网页后返回到页面的最顶端。

5、第五种写法

  1. href="#" onclick="js_method();return false;"

这种方法点击执行了js函数后return false,页面不发生跳转,执行后还是在页面的当前位置。

综合上述,在a中调用js函数最适当的方法推荐使用:

  1. href="javascript:void(0);" onclick="js_method()"
  2. href="javascript:;" onclick="js_method()"
  3. href="#" onclick="js_method();return false;"

JS中字符对象需要用引号:

于是照着修改,结果发现还是不对。最后才发现原来是没有添加引号导致的

  1. <a href="javascript:void(0)" onclick="waterLineEdit('${goods.goods.goods_id}')">修改 </a>
  2. <!-- 上面写法才是正确的,如果按照下面写法最后js可能认为传入了一个对象。而不是String -->
  3. <a href="javascript:void(0)" onclick="waterLineEdit(${goods.goods.goods_id})">修改 </a>

js,JavaScript,a标签onclick传递参数不对,A标签调用js函数写法总结的更多相关文章

  1. js创建点击事件中<a>标签onclick传递多个参数

    var rowIndex = e.rowIndex; var t = "<a href='javascript:void(0)' onclick=\"viewInfo('&q ...

  2. 基于MFC的网页ActiveX控件开发全程实录2(js向ActiveX控件传递参数)

    原文转自 https://blog.csdn.net/qianbin3200896/article/details/81452822 1.ActiveX控件部分(JS到ActiveX控件)继续上一篇博 ...

  3. react onclick传递参数

    最近在做react项目的时候,被一个小问题绊了一脚,记录一下 onClick 传入参数 onClick={e=>{this.Mallclose(e,index)} onClick={this.M ...

  4. Jquery Javascript 跳转页面传递参数以及获取url的参数

    传递参数: window.location='editCourse.html?dataId='+dataId+''; 获取url中的参数(封装的方法):    function getUrlParam ...

  5. onclick传递参数

    http://zhidao.baidu.com/link?url=rLnWM99L8L-fT-dZzw5SgIGI5rc2GmT2P4CQ3ir5Z0zdfZKdkraeURMT95r8POHMup7 ...

  6. angular -- ng-ui-route路由及其传递参数?script标签版

    考虑到 多视图等因素,所以 angular 的路由考虑使用 ng-ui-route来做,而不使用 ng-route来做! <!DOCTYPE html> <html lang=&qu ...

  7. javascript实现浏览器窗口传递参数

    a.html <html> <head> <title>主页面</title> <script language="javascript ...

  8. JS控制静态页面之间传递参数获取参数并应用

    在项目中遇到这也一个问题: 有a.html和b.html. 1.a页面已经打开,b页面尚未打开,我希望在a页面设置好一些列参数,比如背景色,宽度等参数,传递给b页面,好让b页面在打开就能应用. 2.a ...

  9. ASP.NET MVC API与JS进行POST请求时传递参数 -CHPowerljp原创

    在API前添加    [HttpPost] 表示只允许POST方式请求 [HttpPost] public IHttpActionResult Get_BIGDATA([FromBody]Datas  ...

随机推荐

  1. 07.linux系统管理命令

    1.图形界面管理: 如想从图形界面切换至字符界面 输入 init 3 如想字符界面切换至图形界面 init 5 2.进程管理: kill 杀死一个进程 Kill -9 强制杀死一个进程   ›stat ...

  2. Linux 硬链接、软链接

    索引节点 inode(index node) 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata).用户数据,即文件数据块 ...

  3. MBR (主引导记录)

    概念 主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码.它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别.分区引导信息的定位,它由磁盘操 ...

  4. 用JS 和 jQery获取屏幕的高度和宽度

    用的时候,网上找了下,放在一起,方便以后查阅 document.body.clientWidth document.body.offsetWidth(包括线宽)//网页可见区域宽 document.b ...

  5. day08-字符串操作

    name = 'hello,world,WORLD! 123,你好' #capitalize()#首字母大写,其他全部变成小写,没有iscapitalize()方法print(name.capital ...

  6. MySQL数据库备份工具mysqldump的使用(转)

    说明:MySQL中InnoDB和MyISAM类型数据库,这个工具最新版本好像都已经支持了,以前可能存在于MyISAM的只能只用冷备份方式的说法. 备份指定库: mysqldump -h127.0.0. ...

  7. js 正则函数初级之二

    1. 小括号在正则中: 1.1 小括号:表示分组 1.2 分组之后,,每个组都有一个序号,从左到右,依次为1,2,3.......:可以使用 RegExp.$1,RegExp.$2,RegExp.$3 ...

  8. Java重写equals方法(重点讲解)

    为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往 ...

  9. English Conversation – NUMBERS

    English Conversation – NUMBERS Share Tweet Share Tagged With: Numbers Study the pronunciation of num ...

  10. qurtz.net(转载)

    Quartz+TopShelf实现Windows服务作业调度   Quartz:首先我贴出来了两段代码(下方),可以看出,首先会根据配置文件(quartz.config),包装出一个Quartz.Co ...