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 相关文章推荐
document.designMode的功能与使用方法介绍
Nov 22 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
javascript实现简单的进度条
Jul 02 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
May 22 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 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
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python控制台中实现进度条功能
2015/11/10 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python实现多进程通信实例分析
2019/09/01 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
动物科学专业毕业生的自我评价
2013/11/29 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
小学校本教研总结
2015/08/13 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
MySQL为id选择合适的数据类型
2021/06/07 MySQL
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python