<a>标签的href和onclick

这是前两天的代码刚刚遇到的一个问题:

一个普通的条件查询:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <form>  
  2.     用户名:<input type="text" id="userName">  
  3.     登录名:<input type="text" id="loginName">  
  4.     <a href="" onclick="search()">搜索</a>  
  5. </form>  


接下来的问题就是:

search()中提交的url,总是会被执行两次。

问题的根源:

<a>标签的href和onclick

详解:

 如果同时存在href和onclick,首先执行onclick事件,其次是href属性下的动作。

 如果想让href属性下的动作不执行,那onclick必须得到一个false的返回值,或者将href的属性设置为无效链接。即:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <a href="#" onclick="search();return false;">搜索</a>  
  2. <a href="javascript:void(0)" onclick="search()">搜索</a>  
  3. <a href="#" onclick="search();event.returnValue=false">搜索</a>  

#和javascript:void(0)是常见的两个href属性,其区别是javascript:void(0)没起实质上的作用,仅仅是一个死链接,执行的是onclick的事件,"#"包含了一个位置信息默认的锚#top,也就是网页的上端。如果页面过长,有滚动条,且希望通过onclick事件执行操作,应将它的href属性设置为javascript:void(0),而不是#,以防止不必要的页面跳动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值