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写的一个链表实现代码
Oct 25 Javascript
基于jquery的inputlimiter 实现字数限制功能
May 30 Javascript
JS trim去空格的最佳实践
Oct 30 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
一个JavaScript去除字符串末尾的空白实例代码
Sep 22 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
JS区分Object与Aarry的六种方法总结
Feb 27 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
JS async 函数的含义和用法实例总结
Apr 08 Javascript
js前端图片加载异常兜底方案
Jun 21 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并发访问实例代码
2012/09/06 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
Python深度优先算法生成迷宫
2018/01/22 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
python程序控制NAO机器人行走
2019/04/29 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
自动化专业个人求职信范文
2013/11/29 职场文书
十一酒店活动方案
2014/02/20 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
2015年植树节活动总结
2015/02/06 职场文书