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 相关文章推荐
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
jQuery cdn使用介绍
May 08 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
微信小程序开发教程-手势解锁实例
Jan 06 Javascript
详解在 Angular 项目中添加 clean-blog 模板
Jul 04 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
微信小程序使用二次贝塞尔曲线画波浪
Dec 25 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
Element Steps步骤条的使用方法
Jul 26 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 print类函数使用总结
2010/06/25 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
php实现简单四则运算器
2020/11/29 PHP
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
js简单时间比较的方法
2016/08/02 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python端口扫描简单程序
2016/11/10 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Django框架反向解析操作详解
2019/11/28 Python
Django返回HTML文件的实现方法
2020/09/17 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
门诊手术室工作制度
2014/01/30 职场文书
保护环境的建议书
2014/03/12 职场文书
爱情寄语大全
2014/04/09 职场文书
质量提升方案
2014/06/16 职场文书
会议欢迎标语
2014/06/30 职场文书
保密工作目标责任书
2014/07/28 职场文书
优秀纪检干部材料
2014/08/27 职场文书
快递员岗位职责
2014/09/12 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
城管个人总结
2015/02/28 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript