js阻止默认行为

2024-05-26 18:18
文章标签 js 行为 默认 阻止

本文主要是介绍js阻止默认行为,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要: js默认行为阻止

一.哪些默认行为要做阻止

1.a标签链接跳转

什么是默认行为?一个最简单的例子,我有一个a标签:

<a href="https://www.baidu.com/" target="_blank">百度</a>

我们预览打开,点击百度两个字就会打开百度页面,点击后链接地址跳转就是a标签的默认行为。

我们有没有办法在a点击后让他不跳转的处理呢?这是肯定有的,a在点击会触发click事件,我们只要在回调中加入事件阻止方法就可以阻止跳转发生:

<a href="https://www.baidu.com/" target="_blank" id="skip">百度</a>
var skip=document.getElementById("skip");
skip.onclick=function(event){event.preventDefault();
};

再次点击百度,还会停留在当前页面,当然除了调用事件对象的阻止方法还可以用下面的处理:

skip.onclick=function(event){return false;
};

2.form表单提交

除了a的默认跳转行为,其实表单的提交行为很多时候我们也要进行阻止,当然是因为有表单验证了,因为输入问题而去阻止提交:

<form action="11.html" id="form">
<input type="text" id="text">
<span id="ti"></span>
<input type="submit">
</form>
var form=document.getElementById("form");
var text=document.getElementById("text");
var ti=document.getElementById("ti");
form.onsubmit=function(event){var val=text.value;if(val.length<6){ti.innerHTML="长度小于6";event.preventDefault();}; 
};

如果input的长度小于6就会提示错误。作为提交表单验证阻止默认是必须的。

event.preventDefault();在低级ie存在不兼容问题,但是return false是兼容的。

结论:

阻止默认行为方法1(高级浏览器/w3c标准的):event.preventDefault()

阻止默认行为方法2:return false

 

二.event.preventDefault()和return false对比

还是对表单处理做修改:

var form=document.getElementById("form");
var text=document.getElementById("text");
var ti=document.getElementById("ti");
form.onsubmit=function(event){var val=text.value;if(val.length<6){ti.innerHTML="长度小于6";event.preventDefault();alert("我在阻止后弹出!")}; 
};

不会提交跳转,并且弹出了后面的程序。

var form=document.getElementById("form");
var text=document.getElementById("text");
var ti=document.getElementById("ti");
form.onsubmit=function(event){var val=text.value;if(val.length<6){ti.innerHTML="长度小于6";return false;alert("我在阻止后弹出!")}; 
};

不会提交跳转,不过后面程序不会执行,我们知道return一经使用就是程序终止,带有break的作用。

有人会想,我return 别的会不会也阻止跳转:

var form=document.getElementById("form");
var text=document.getElementById("text");
var ti=document.getElementById("ti");
form.onsubmit=function(event){var val=text.value;if(val.length<6){ti.innerHTML="长度小于6";return 0;alert("我在阻止后弹出!")}; 
};

很遗憾,提交成功了。

结论:

只有返回false才会阻止,与return自带break处理无关,阻止行为只是判断你返不返回false。

这篇关于js阻止默认行为的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005224

相关文章

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(