Vue表單提交點(diǎn)擊事件只允許點(diǎn)擊一次的實(shí)例
常用出現(xiàn)場(chǎng)景:商城點(diǎn)擊訂單提交
1、使用Vue封裝事件
body:
<template> <div> <el-button @click.once="submitOrder()">提交訂單</el-button> </div> </template>
方法:
methods: {
submitOrder() {
// 處理邏輯
}
}
2、使用原生JS事件
在數(shù)據(jù)data里面聲明一個(gè)flag屬性
data() {
return {
isSubmit: true;
}
}
body:
<template> <div> <el-button @click="submitOrder()">提交訂單</el-button> </div> </template>
方法:
methods: {
submitOrder() {
if (this.isSubmit) {
this.isSubmit = false;
// 處理邏輯
}
}
}
補(bǔ)充知識(shí):表單驗(yàn)證提交內(nèi)容不能為空的幾種方法
方法一:
使用css的required屬性
<input type="" required="required" name="" id="" value="" />
方法二:
使用JS代碼示例,注意事項(xiàng):form要加上onSubmit事件,form.xx.vlaue要在表單中對(duì)應(yīng)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位,請(qǐng)重新輸入!');
form.password.focus();
return false;
}
if(form.password.value!=form.password2.value) {
alert('你兩次輸入的密碼不一致,請(qǐng)重新輸入!');
form.password2.focus();
return false;
}
return true;
}
</script>
<fieldset>
<legend>用戶注冊(cè)</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>重復(fù)密碼:<input type="password" name="password2" value=""></label></td></tr>
<tr><td><input value="注冊(cè)" type="submit"> <input type="reset" value="重置"></td></tr>
</table>
</form>
</fieldset>
方法三:
使用jQuery方法(通過(guò)class驗(yàn)證),需要引用jquery.min.js
優(yōu)勢(shì):
1:為input添加class,名字可以隨意設(shè)置,但每個(gè)input需要保持一致,本章案例calss設(shè)置為noNull。(若input已有class屬性,可直接加到其后)
2:為input添加一個(gè)屬性,用來(lái)后期通過(guò)jquery獲取該字段,用作提示語(yǔ)。本章案例提示屬性為notNull。
3:通過(guò)jQuery遍歷頁(yè)面中所有calss為noNull的表單,驗(yàn)證其是否為空,若為空,通過(guò)獲取notNull的字段,進(jìn)行為空提示。
具體如何設(shè)置,請(qǐng)參照下面的案例。
<!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 ="">請(qǐng)選擇</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表單提交點(diǎn)擊事件只允許點(diǎn)擊一次的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果
這篇文章主要介紹了vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
利用Vue與D3.js創(chuàng)建交互式數(shù)據(jù)可視化
在現(xiàn)代Web開發(fā)中,數(shù)據(jù)可視化是一個(gè)引人矚目的熱點(diǎn)領(lǐng)域,從簡(jiǎn)單的圖表到復(fù)雜的交互式儀表盤,數(shù)據(jù)可視化能夠幫助用戶更好地理解數(shù)據(jù),而Vue與D3.js的結(jié)合則為我們提供了構(gòu)建這些可視化效果的強(qiáng)大工具,本文將向您展示如何利用Vue與D3.js創(chuàng)建一個(gè)基本的交互式數(shù)據(jù)可視化項(xiàng)目2025-02-02
vue移動(dòng)端時(shí)彈出側(cè)邊抽屜菜單效果
這篇文章主要介紹了vue移動(dòng)端時(shí)彈出側(cè)邊抽屜菜單,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
vue離開當(dāng)前頁(yè)面觸發(fā)的函數(shù)代碼
這篇文章主要介紹了vue離開當(dāng)前頁(yè)面觸發(fā)的函數(shù)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
BuildAdmin elementPlus自定義表頭添加tooltip方法示例
這篇文章主要介紹了BuildAdmin elementPlus 自定義表頭,添加tooltip實(shí)現(xiàn)方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
100行代碼實(shí)現(xiàn)vue表單校驗(yàn)功能(小白自編)
這篇文章主要介紹了使用100行代碼實(shí)現(xiàn)vue表單校驗(yàn)功能,本文通過(guò)實(shí)例截圖給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11

