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

相关文章

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2