Vue表单提交点击事件只允许点击一次的实例


Posted in Javascript onOctober 23, 2020

常用出现场景:商城点击订单提交

1、使用Vue封装事件

body:

<template>
 <div>
 <el-button @click.once="submitOrder()">提交订单</el-button>
 </div>
</template>

方法:

methods: {
 submitOrder() {
 // 处理逻辑
 }
}

2、使用原生JS事件

在数据data里面声明一个flag属性

data() {
 return {
 isSubmit: true;
 }
}

body:

<template>
 <div>
 <el-button @click="submitOrder()">提交订单</el-button>
 </div>
</template>

方法:

methods: {
 submitOrder() {
 if (this.isSubmit) {
 this.isSubmit = false;
 // 处理逻辑
 }
 }
}

补充知识:表单验证提交内容不能为空的几种方法

方法一:

使用css的required属性

<input type="" required="required" name="" id="" value="" />

方法二:

使用JS代码示例,注意事项:form要加上onSubmit事件,form.xx.vlaue要在表单中对应name

<script type="text/javascript">
function beforeSubmit(form){
if(form.username.value==''){
alert('用户名不能为空!');
form.username.focus();
return false;
}
if(form.password.value==''){
alert('密码不能为空!');
form.password.focus();
return false;
}
if(form.password.value.length<6){
alert('密码至少为6位,请重新输入!');
form.password.focus();
return false;
}
if(form.password.value!=form.password2.value) {
alert('你两次输入的密码不一致,请重新输入!');
form.password2.focus();
return false;
}
return true;
}
</script>

<fieldset>
  <legend>用户注册</legend>
  <form method="post" name="form" action="user.do?method=register" onSubmit="return beforeSubmit(this);">
   <table border="1" width="100%" cellspacing="0" cellpadding="0">
   <tr><td><label>用户名:<input type="text" name="username" value=""></label></td></tr>
   <tr><td><label>密  码:<input type="password" name="password" value=""></label></td></tr>
   <tr><td><label>重复密码:<input type="password" name="password2" value=""></label></td></tr>
   <tr><td><input value="注册" type="submit"> <input type="reset" value="重置"></td></tr>   
   </table>
  </form>
</fieldset>

方法三:

使用jQuery方法(通过class验证),需要引用jquery.min.js

优势:

1:为input添加class,名字可以随意设置,但每个input需要保持一致,本章案例calss设置为noNull。(若input已有class属性,可直接加到其后)

2:为input添加一个属性,用来后期通过jquery获取该字段,用作提示语。本章案例提示属性为notNull。

3:通过jQuery遍历页面中所有calss为noNull的表单,验证其是否为空,若为空,通过获取notNull的字段,进行为空提示。

具体如何设置,请参照下面的案例。

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
</head>
<body>
  <form>
      <!-- input -->
      <div>
        姓名: <input type="text" name="name" notNull="姓名" class="form-control noNull"> 
      </div>
      <br>
      <!-- radio -->
      <div>
       性别:
       男<input type="radio" name="sex" value="0" class="noNull" notNull="性别">
       女<input type="radio" name="sex" value="1" >
      </div>
      <br>
      <!-- select -->
      <div>
        年龄:
        <select name="age" class="noNull" notNull="年龄">
          <option value ="">请选择</option>
          <option value ="1">1</option>
          <option value ="2">2</option>
        </select>
      </div>
      <br>
      <!-- checkbox -->
      <div>
        兴趣:
        打球<input type="checkbox" name="hobby" value="1" class="noNull" notNull="兴趣">
        唱歌<input type="checkbox" name="hobby" value="2">
        跳舞<input type="checkbox" name="hobby" value="3">
      </div>
      <br>
     <button type="button" class="btn-c" onclick="bubmi()">保存</button>
  </form>

<script src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function bubmi(){
  $(".noNull").each(function(){
    var name = $(this).attr("name");
    if($(this).val()==""){
    alert($(this).attr('notNull')+"不能为空");return false;
    }
    if($(this).attr("type")=="radio"){ 
      if ($("input[name='"+name+"']:checked").size() < 1){ 
        alert($(this).attr('notNull')+"不能为空!"); 
        return false; 
      } 
    }
    if($(this).attr("type")=="checkbox"){ 
      if ($('input[name="'+name+'"]:checked').size() < 1){ 
        alert($(this).attr('notNull')+"不能为空!"); 
        return false; 
      } 
    }    
  })  
}
</script>
</body>
</html>

以上这篇Vue表单提交点击事件只允许点击一次的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js实现in_array的方法
Nov 05 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
jQuery的图片滑块焦点图插件整理推荐
Dec 07 Javascript
JavaScript构造函数详解
Dec 27 Javascript
浅析javascript函数表达式
Feb 10 Javascript
js自制图片放大镜功能
Jan 24 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
Aug 06 Javascript
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
Vue实现PopupWindow组件详解
Apr 28 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
Sep 13 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 #Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 #Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 #Javascript
微信小程序canvas动态时钟
Oct 22 #Javascript
vue-cli —— 如何局部修改Element样式
Oct 22 #Javascript
微信小程序入门之绘制时钟
Oct 22 #Javascript
微信小程序入门之指南针
Oct 22 #Javascript
You might like
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
封装一个PDO数据库操作类代码
2009/09/09 PHP
ThinkPHP之getField详解
2014/06/20 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python文件处理
2016/02/29 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
用python实现的线程池实例代码
2018/01/06 Python
python监控进程脚本
2018/04/12 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
塔吉特百货公司官网:Target
2017/04/27 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
公休请假条
2014/04/11 职场文书
离婚财产分配协议书
2014/10/21 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
python文件与路径操作神器 pathlib
2022/04/01 Python
MongoDB数据库之添删改查
2022/04/26 MongoDB