阻止 form 表单的默认提交

目录

  • 表单提交的3种形式
    • 1,默认提交
    • 2,submit 提交
    • 3,button 提交
  • 阻止提交
    • 方法1—— return false
    • 方法2 —— 阻止 submit 的默认行为
    • 方法3 —— 针对 button 的处理

表单提交的3种形式

MDN - form 提交表单时,未指定 form.action 会重新加载页面,否则跳转到 form.action

<form><input type="text" />
</form>

效果:

在这里插入图片描述

1,默认提交

W3C 标准定义:

当1个表单中只有1个单行文本输入字段时,在此字段中按下 Enter (回车键)的行为,浏览器应将其视为提交表单的请求。

单行文本输入字段:input.type = text number password search tel url

2,submit 提交

<form><input type="submit" value="提交" /><!-- 图形化 submit 按钮,表现和 type="submit" 一致 --><input type="image" src="./vue.svg" />
</form>

3,button 提交

MDN - button,buttontype默认为 submit

<form><button>提交</button>
</form>

阻止提交

提交 form 表单,实际上执行的是 form.submit 事件,所以阻止该事件即可。

前2种方法,对3种提交方式都有效,因为是针对 form 的。

方法1—— return false

<form onsubmit="return false;"><input type="text" />
</form>

也可以在事件函数中,进行表单验证:

<form onsubmit="return validateForm();"><input type="text">
</form><script>
function validateForm() {if (/* 验证通过 */) {return true; // 允许表单提交} else {return false; // 阻止表单提交}
}
</script>

方法2 —— 阻止 submit 的默认行为

<form id="myForm"><input type="text">
</form><script>
document.getElementById("myForm").addEventListener("submit", function(event) {// 阻止默认的表单提交行为event.preventDefault();// 在这里可以编写表单验证逻辑if (/* 验证通过 */) {this.submit(); // 手动触发表单提交}
});
</script>

在 vue 的事件处理中,就是使用的这个方法。

<!-- 提交事件将不再重新加载页面 -->
<form @submit.prevent="onSubmit"></form>

方法3 —— 针对 button 的处理

当通过 button 提交时,因为button.type = "submit" 才导致了直接提交表单。所以修改 type 即可。

<form id="myForm"><input type="text" name="inputField"><button type="button" onclick="validateAndSubmit()">提交</button>
</form><script>
function validateAndSubmit() {// 在这里编写表单验证逻辑if (/* 验证通过 */) {document.getElementById("myForm").submit(); // 手动触发表单提交}
}
</script>

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/53656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统--常用指令(用户管理操作类)

用户的管理需要使用超级管理员(root)来进行操作 (1).useradd添加新用户 功能:给当前的操作系统添加新的用户 语法: useradd 用户名 (2).passwd设置用户新密码 功能:给当前的用户设置密码 语法: passwd用户名 (3).i

js的使用之时间如何定义,窗口加载事件

1.时间如何定义 1.1 date的其他的属性 带出星期几的写法 var arr [星期日,星期一,星期二,星期三,星期四,星期五,星期六,星期天] var day date.getDay(); console.log(arr[day]); 1.2 日期的格式化 1.3 时分秒的写法 固定写法&#xff1a;如果想要写成00:00:00这种形式&am…

Flutter对象状态动态监听Watcher

场景&#xff1a;当一个表单需要在表单全部或者特定项赋值后才会让提交按钮可点击。 1.普通实现方式&#xff1a; ///场景&#xff1a;检查[test11][test12][test13]均不为空时做一些事情&#xff0c;例如提交按钮变成可点击String? test11;String? test12;int? test13;///当…

Uniapp或者微信小程序如何动态的计算Scrollview的高度

当一个小程序页面&#xff0c;顶部有搜索栏&#xff0c;或者分类查询时&#xff0c;我们想要保证它们能固定到顶部&#xff0c;就需要使用到Scrollview&#xff0c;那么如何确定Scrollview就是一个问题&#xff0c;这时我们可以使用以下代码来实现 setScrollHeight(view #scr…

GNU-gcc编译选项-1

include目录 -I &#xff0c;比如: -I. -I ./Platform/include -I ./Platform/include/prototypes -I ./tpm/include -I ./tpm/include/prototypes -I ./Simulator/include -I ./Simulator/include/prototypes 编译选项 在GCC编译器中&#xff0c;-D是一个编译选项&…

NMS算法实现

NMS算法(非极大值抑制)是目标检测算法中经典的后处理步骤&#xff0c;其本质是搜索局部最大值&#xff0c;抑制非极大值元素。主要利用目标检测框以及对应的置信度分数&#xff0c;设置一定的阈值来删除重叠较大的边界框。 其算法流程如下&#xff1a; 根据置信度得分进行排序…

Java“牵手”天猫商品评论API接口数据,天猫API接口申请指南

天猫商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝商品详情页面评价内容数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝商城的网页来获取商品详情信息内的评论数据。以下是两种常用方法…

高效实用小工具之Everything

一&#xff0c;简介 有时候我们电脑文件较多时&#xff0c;想快速找到某个文件不是一件容易的事情&#xff0c;实用windows自带的搜索太耗时&#xff0c;效率不高。今天推荐一个用来搜索电脑文件的小工具——Everything&#xff0c;本文将介绍如何安装以及使用everything&…

强化学习系列--演员-评论员算法(Actor-Critic Algorithm)

强化学习系列--演员-评论员算法&#xff08;Actor-Critic Algorithm&#xff09; 介绍示例代码&#xff08;pytorch&#xff09;示例代码&#xff08;tensorflow&#xff09; 介绍 演员-评论员算法&#xff08;Actor-Critic Algorithm&#xff09;是一种结合了值函数估计和策略…

XXL-JOB

XXL-JOB是一个分布式的任务调度平台。 目的&#xff1a;为了自动完成特定的任务&#xff0c;在约定的特定时间去执行任务的过程。 原因&#xff1a;在spring中有scheduled&#xff0c;放到业务层代码上面也可以。但是其无法做到高可用、防止重复执行&#xff0c;单机处理极限…

uniapp使用uni.chooseLocation()打开地图选择位置

使用uni.chooseLocation()打开地址选择位置&#xff1a; 在Uniapp源码视图进行设置 添加这个属性&#xff1a;"requiredPrivateInfos":["chooseLocation"] ​ </template><view class"location_box"><view class"locatio…

4.12 TCP 连接,一端断电和进程崩溃有什么区别?

目录 TCP keepalive TCP 的保活机制 主机崩溃 进程崩溃 有数据传输的场景 客户端主机宕机&#xff0c;又迅速重启 客户端主机宕机&#xff0c;一直没有重启 TCP连接服务器宕机和进程退出情况总结 TCP keepalive TCP 的保活机制 TCP 保活机制需要通过 socket 接口设置 S…

anguar12里面FormControl学习

在Angular 12中&#xff0c;要动态修改FormGroup&#xff0c;你可以使用patchValue()方法或setValue()方法。 使用patchValue()方法&#xff1a; import { Component, OnInit } from angular/core; import { FormBuilder, FormGroup } from angular/forms;Component({selector:…

Java 语言实现冒泡排序

Java 语言实现冒泡排序 介绍 冒泡排序是一种简单直观的排序算法&#xff0c;它重复地比较相邻的两个元素&#xff0c;如果顺序错误就交换它们&#xff0c;直到没有需要交换的元素为止。冒泡排序的思路是通过每一轮的比较将最大&#xff08;或最小&#xff09;的元素逐渐“冒泡…

Mybatis-动态sql和分页

目录 一.什么是Mybatis动态分页 二.mybatis中的动态SQL 在BookMaaper.xml中写sql BookMapper BookBiz接口类 BookBizImpl实现接口类 demo测试类 ​编辑 测试结果 三.mybatis中的模糊查询 mybatis中的#与$有是什么区别 在BookMapper.xml里面建立三个模糊查询 ​编辑 …

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II

用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法 Part II 用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法&#xff08;环境VS2022openCV4.8.0&#xff09; Part I_松下J27的博客-CSDN博客 在上一篇文章中&#xff0c;我用cmake成功的生成了ope…

无涯教程-分类算法 - 逻辑回归

逻辑回归是一种监督学习分类算法&#xff0c;用于预测目标变量的概率&#xff0c;目标或因变量的性质是二分法&#xff0c;这意味着将只有两种可能的类。 简而言之&#xff0c;因变量本质上是二进制的&#xff0c;其数据编码为1(代表成功/是)或0(代表失败/否)。 在数学上&…

pymysql记录【持续更新】

文章目录 pymysql记录安装参考基础教程其它 pymysql记录 安装参考 超详细 MySQL8.0的下载、安装配置教程、连接数据可视图形化界面和卸载及MySQL基本使用教程&#xff08;霸霸看了都说好&#xff09; 基础教程 数据库创建 参考Python 操作数据库 - 迷途小书童的Note迷途小书…

169. 多数元素(哈希表)

169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 class Solution { public:int majorityElement(vector<int&…

【网络】IP网络层和数据链路层

IP协议详解 1.概念 1.1 四层模型 应用层&#xff1a;解决如何传输数据&#xff08;依照什么格式/协议处理数据&#xff09;的问题传输层&#xff1a;解决可靠性问题网络层&#xff1a;数据往哪里传&#xff0c;怎么找到目标主机数据链路层&#xff08;物理层&#xff09;&…