a链接易混淆与form表单简易验证用法详解
链接可以说遍布互联网,比如你想提供一个可以跳转到百度首页的链接给网友,那么代码如下:
<a href="http://www.baidu.com">百度一下,你就知道</a>
而如果这个链接指向的网址你想在浏览器中的新窗口中打开,那么代码如下:
<a href="http://www.baidu.com" target="_blank">百度一下,你就知道</a>
那如果我页面中有一堆的a链接都想在新窗口中打开呢?难道得为一个个链接添加 target="_blank" ?其实只需在页面中插入一个base标签就可以实现了,base标签一般是放到网页的head标签里面,base标签的代码如下:
<base target="_blank" />
下面区分下a链接容易混淆的知识点:
<a href="">这是一个空链接</a>
<a href="#">这是一个#链接</a>
<a href="javascript:;">这是一个'javascript:;'链接</a>
这三种其实是有区别的,第一种空链接点击后会刷新页面,而后面两种写法点击后不会刷新页面;
但是但是但是,第二种写法#链接其实还有一个独特的用法,比如以下代码:
<a href="#foot">这是一个#链接</a>
...
.此处省略很多页面内容.
...
<footer id="foot">
这是页面底部
</footer>
如果一个页面内容很长,我们想在页面头部设置一个链接方便用户点击后直接跳转到当前页面的底部浏览就可以使用上面的写法来实现了,注意 href="#foot" 与 id="foot" 中的foot必须一致否则无效。
下面来个问题:
<a href="javascript:alert('这是href弹出的');" onclick = "javascript:alert('这是onclick弹出的');">这是一个链接</a>
你觉得哪个的js代码会执行呢? 其实onclick的alert会先被执行。
注意onclick的'javascript:'可以省略不写,而href属性执行js代码时的'javascript:'不能省略。
下面来谈谈a链接调用函数易混淆的地方:
<a href="javascript:fnHref();" onclick = "fnLink()">这是链接一</a>
<a href="javascript:fnHref();" onclick = "return fnLink()">这是链接二</a>
<a href="javascript:fnHref();" onclick = "return false;fnLink()">这是链接三</a>
<a href="javascript:;" onclick = "fnLink()">这是链接四</a>
<a href="#" onclick = "fnLink()">这是链接五</a>
<script>
function fnHref(){
alert(1);
}
function fnLink(){
alert(2);
}
</script>
上面的script代码段其实写到a链接的前面或后面都可以正常运行,因为js有 预解析机制。
链接一点击后:先弹2后弹1
链接二点击后:先弹2后弹1
链接三点击后:onclick事件触发后直接return false(程序返回假),后面的代码统统不执行,所以啥也没弹
链接四点击后:弹2然后没有然后了
链接五点击后:弹2然后没有然后了,其实链接五与链接四效果一模一样。
举一反三:其实form表单中的action(类似a链接里面的href)与onsubmit(类似onclick)写法类似。
<form action="#" method="get" id="myform1" onsubmit="checkForm()">
<label>用户名:</label>
<input type="text" placeholder="请输入用户名" name="username" />
<label>密码:</label>
<input type="password" name="pw" />
<input type="submit" value="注册" name="sub" />
</form>
<script>
function checkForm(){ /*当submit按钮被点击时会触发此函数*/
if(myform1.username.value == '') {
alert('用户名不能为空');
return false; //中止程序运行,终止action提交。
}
}
</script>
a链接易混淆与form表单简易验证用法详解的更多相关文章
- form表单target的用法,实现无刷新提交页面
form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...
- form表单target的用法
偶然有一机会发现form表单的target的用法,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一form表单和一iframe <form action="提交的a ...
- 深入了解Element Form表单动态验证问题 转载
随风丶逆风 2020-04-03 15:36:41 2208 收藏 3 分类专栏: Vue 随笔 文章标签: 动态验证 el-form elementUI 表单验证 版权 在上一篇<vue ...
- 重写form 表单的验证信息
(function($) { var isformValidationPostBack=true; var isformValidation = false; $.extend({ formValid ...
- form 表单jquery验证插件使用
第一部分:表单样式 <form action="#" method="post" id="regist"> <tabl ...
- Vue Element Form表单时间验证控件使用
如果直接使用Element做时间选择器,其规则(rules)不添加type:'date',会提示类型错误,处理这个需要规范值的类型为date. 时间格式化过滤器 import Vue from 'vu ...
- Jquery ajax提交表单几种方法详解
[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...
- input表单的type属性详解,不同type不同属性之间区别
目标:详解表单input标签type属性常用的属性值 一.input标签和它的type属性 PS:input 元素可以用来生成一个供用户输入数据的简单文本框. 在默认的情况下, 什么样的数据均可以输入 ...
- JavaScript表单序列化的方法详解
本文介绍下,在javascript中实现表单序列化的方法,通过实例加深理解,有需要的朋友参考下吧. 在JavaScript中,可以利用表单字段的type属性,连同name和value属性一起实现对表单 ...
随机推荐
- python--DenyHttp项目(1)--调用cmd控制台命令os.system()
os.system() 参数传递cmd命令,命令执行成功返回0,失败返回1 在网上查看使用ping命令,能否Ping通 大神们有 用正则的,有用Popen() os.system()直接用返回值,简单 ...
- Java Struts图片上传至指定文件夹并显示图片
继上一次利用Servlet实现图片上传,这次利用基于MVC的Struts框架,封装了Servlet并简化了JSP页面跳转. JSP上传页面 上传一定要为form加上enctype="mult ...
- akoj-1073- Let the Balloon Rise
Let the Balloon Rise Time Limit:1000MS Memory Limit:65536K Total Submit:92 Accepted:58 Description ...
- akoj-1059-Picture
Description 给你一个矩形的宽度和高度,要求按sample output样例输出此矩形. Input 输入包含多组数据,每一组包含两个数N和M( 0 < N ,M , < 75 ...
- 分页工具类 BaseAction
package com.xxxxxxx.bos.web.action.common; import java.io.IOException; import java.lang.reflect.Para ...
- 【物联网云端对接-4】通过MQTT协议与百度云进行云端通信
百度云的天工物联网服务目前包括:物接入.物解析.物管理.时序数据库和规则引擎等5大部分,本篇文章仅介绍物接入. 天工物联网的物接入,从开发者的角度来说相对有些复杂,需要多步操作才能实现一个云设备的创建 ...
- jvm系列 (三) ---锁的优化
锁的优化 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 我的博客目录 锁的四种状态 从低到高,只能升级不能降级 无锁状态 偏向锁 ...
- java中Object转String
Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toStri ...
- 【Ganglia】集群监控系统搭建
参考博客 www.cnblogs.com/atomicbomb/p/6726119.html 操作系统 centos7 机器两台 一. 配置软件环境 操作步骤: 使用yum安装方式安装所需基础依赖包 ...
- 【Zookeeper】应用场景
配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台server运行,但是他们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这应用系统的serve ...