jquery表單提交帶錯(cuò)誤信息提示效果
效果圖:

html代碼:
<form action="" method="" name="form2">
<div class="m_t30 error_div2">
<div>
我是
<select name="identity" id="ko" class="form-control">
<option></option>
<option value="investor">投資者</option>
<option value="developer">地產(chǎn)開發(fā)商</option>
</select>
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<input type="text" class="form-control" name="name" placeholder="用戶名">
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<input type="email" class="form-control" name="email" placeholder="電子郵箱">
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<input type="tel" class="form-control" name="phone" placeholder="手機(jī)">
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<select name="country" class="form-control">
<option></option>
<option>國家或地區(qū)</option>
<option value="1">中國</option>
<option value="2">美國</option>
</select>
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<select name="province" class="form-control">
<option></option>
<option>州/省</option>
<option value="1">廣東</option>
<option value="2">加州</option>
</select>
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<input type="password" class="form-control" name="pwd" placeholder="密碼">
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10 error_div2">
<div>
<input type="password" class="form-control" name="pwd2" placeholder="再次確認(rèn)密碼">
</div>
<div>
<p class="error_p2"><i class="glyphicon glyphicon-info-sign"></i>注冊錯(cuò)誤信息</p>
</div>
</div>
<div class="m_t10">
<div>
<button class="btn btn_login" type="button" onclick="btn_register()">下一步</button>
</div>
</div>
</form>
css代碼:
<style>
.m_t10 {
margin-top: 20px;
}
.error_p2 {
background-color: #FF6900;
color: white;
font-size: 10px;
padding: 5px;
border-radius: 5px;
display: none;
}
.error_p2 i {
margin-right: 5px;
}
</style>
js代碼
<!--注冊錯(cuò)誤判斷form2-->
<script>
//定義要提交的所有數(shù)據(jù)為一個(gè)數(shù)組validate2,并且全部賦值為false
var validate2 = {
identity: false,
name: false,
phone: false,
email: false,
country: false,
province: false,
mail: false,
pwd: false,
pwd2: false
};
var msg = ""; //定義提示信息
//判斷角色
$('select[name=identity]', form2).blur(function() {
var identity = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(identity == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸入您的身份";
span.html(msg);
span.css('display', 'inline');
validate2.identity = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.identity = true;
return;
}
})
// //判斷用戶名
$('input[name=name]', form2).blur(function() {
var name = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(name == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸入用戶名";
span.html(msg);
span.css('display', 'inline');
validate2.name = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.name = true;
return;
}
})
//判斷手機(jī)
$('input[name=phone]', form2).blur(function() {
var phone = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(phone == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸入手機(jī)號";
span.html(msg);
span.css('display', 'inline');
validate2.phone = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.phone = true;
return;
}
})
//判斷國家
$('select[name=country]', form2).blur(function() {
var country = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(country == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸入國家";
span.html(msg);
span.css('display', 'inline');
validate2.country = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.country = true;
return;
}
})
//判斷省份
$('select[name=province]', form2).blur(function() {
var province = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(province == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸入省或州";
span.html(msg);
span.css('display', 'inline');
validate2.province = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.province = true;
return;
}
})
//判斷郵政編碼
$('input[name=mail]', form2).blur(function() {
var mail = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(mail == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請輸郵政編碼";
span.html(msg);
span.css('display', 'inline');
validate2.mail = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.mail = true;
return;
}
})
//判斷email
$('input[name=email]', form2).blur(function() {
var email = $(this).val();
var reg = /\w+[@]{1}\w+[.]\w+/;
var span = $(this).parents('.error_div2').find('.error_p2');
if(email == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "請?zhí)顚戉]箱";
span.html(msg);
span.css('display', 'inline');
validate2.eamil = false;
return;
} else if(reg.test(email) == false) {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "郵箱格式不正確";
span.html(msg);
span.css('display', 'inline');
validate2.email = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.email = true;
return;
}
})
//判斷密碼
$('input[name=pwd]', form2).blur(function() {
var pwd = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(pwd == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "密碼不能為空";
span.html(msg);
span.css('display', 'inline');
validate2.pwd = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.pwd = true;
return;
}
})
//判斷再次確認(rèn)密碼
$('input[name=pwd2]', form2).blur(function() {
var pwd2 = $(this).val();
var span = $(this).parents('.error_div2').find('.error_p2');
//判斷用戶名是否為空
if(pwd2 == '') {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "確認(rèn)密碼不能為空";
span.html(msg);
span.css('display', 'inline');
validate2.pwd2 = false;
return;
} else if(pwd2 != $('input[name=pwd]', form2).val()) {
msg = '<i class="glyphicon glyphicon-exclamation-sign"></i>' + "確認(rèn)密碼與密碼不一致";
span.html(msg);
span.css('display', 'inline');
validate2.pwd2 = false;
return;
} else {
msg = "";
span.css('display', 'none');
validate2.pwd2 = true;
return;
}
})
//提交表單,isOK的值是所有提交信息的true,false判斷,
//只要有一個(gè)為false,isOK的值就是false,
//isOK值為false的話就全部執(zhí)行一次表單元素的失去焦點(diǎn)事件,從而提示錯(cuò)誤信息
//isOK值為true的話才提交表單。
//因?yàn)橛行╉撁婵赡懿恢挂粋€(gè)需要提交的表單或者有些表單元素的name重復(fù),所以根據(jù)form name=".. ",來區(qū)分元素失去事件,這里是form2就是對應(yīng)的<form name>
function btn_register() {
var isOK = validate2.identity && validate2.name && validate2.phone && validate2.email && validate2.mail && validate2.country && validate2.province && validate2.pwd && validate2.pwd2;
var form2 = $('form[name=form2]');
if(isOK) {
//。。。執(zhí)行提交事件
form2.submit();
} else {
$('select[name=identity]', form2).trigger('blur');
$('input[name=name]', form2).trigger('blur');
$('input[name=phone]', form2).trigger('blur');
$('input[name=email]', form2).trigger('blur');
$('input[name=mail]', form2).trigger('blur');
$('select[name=country]', form2).trigger('blur');
$('select[name=province]', form2).trigger('blur');
$('input[name=pwd]', form2).trigger('blur');
$('input[name=pwd2]', form2).trigger('blur');
}
}
</script>
簡要說明:
//執(zhí)行對應(yīng)表單元素的失去焦點(diǎn)事件$('input[name=XX]',formX).blur()
//定義對應(yīng)的參數(shù)來獲取值,如:var pwd=$(this).val();
//定義參數(shù)獲取對應(yīng)錯(cuò)誤提示信息的標(biāo)簽元素對象,這里的是var span = $(this).parents('.error_div2').find('.error_p2');
//簡要說明.parents('')方法獲取的是祖先元素為('.error_div2'),看清楚有帶"s",簡單來說如果.error_div2是當(dāng)前元素的上三級$('this').parent().parent().parent(),而用$('this').parents('.error_div2')能一步到位獲取到該元素對象,而find('')方法剛好相反,一步到位的獲取對應(yīng)后輩元素對象
//然后就是根據(jù)條件判斷,判斷的正則表達(dá)式我就不一 一舉例了(因?yàn)槲乙灿洸蛔∧敲炊? =、),是否符合返回對應(yīng)的數(shù)組元素true、false值,實(shí)現(xiàn)隱藏錯(cuò)誤提示,并且給數(shù)組validate2的值賦值。
//最后提交表單時(shí),再次執(zhí)行判斷isOK是否為true
//isOK值為false的話就全部執(zhí)行一次表單元素的失去焦點(diǎn)事件,從而提示錯(cuò)誤信息
//isOK值為true的話才提交表單。
//ps:表單里的button元素如果不是提交按鈕,記得將type=“button”,否則默認(rèn)是type=“submit”,點(diǎn)擊就會(huì)提交;
寫在最后的話:
樣式和布局沒怎么設(shè)置好,頁面效果欠佳,深感抱歉
還是那句話,寫jq先想好要獲取哪些對象,執(zhí)行什么事件,最后什么元素對象達(dá)到怎樣的效果,parents和find方法和省事,不過使用時(shí)注意嵌套好div達(dá)到整體性效果
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- jquery實(shí)現(xiàn)ajax提交表單信息的簡單方法(推薦)
- jquery ajax提交表單數(shù)據(jù)的兩種方式
- jquery實(shí)現(xiàn)ajax提交form表單的方法總結(jié)
- jQuery使用ajaxSubmit()提交表單示例
- JQuery通過Ajax提交表單并返回結(jié)果
- JQuery打造PHP的AJAX表單提交實(shí)例
- jQuery ajax中使用serialize()方法提交表單數(shù)據(jù)示例
- jquery序列化form表單使用ajax提交后處理返回的json數(shù)據(jù)
- jquery下異步提交表單 異步跨域提交表單
- jQuery實(shí)現(xiàn)form表單基于ajax無刷新提交方法詳解
相關(guān)文章
Jquery實(shí)現(xiàn)簡單的動(dòng)畫效果代碼
Jquery實(shí)現(xiàn)簡單的動(dòng)畫效果代碼,需要的朋友可以參考下2012-03-03
jQuery實(shí)現(xiàn)可以計(jì)算進(jìn)制轉(zhuǎn)換的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)可以計(jì)算進(jìn)制轉(zhuǎn)換的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
JQuery發(fā)送ajax請求時(shí)中文亂碼問題解決
這篇文章主要介紹了JQuery發(fā)送ajax請求時(shí)中文亂碼問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
jQuery遮罩層實(shí)現(xiàn)方法實(shí)例詳解(附遮罩層插件)
這篇文章主要介紹了jQuery遮罩層實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery遮罩層樣式及功能實(shí)現(xiàn)技巧,并附帶分析了一個(gè)簡單jQuery遮罩層插件實(shí)現(xiàn)方法,需要的朋友可以參考下2015-12-12
使用jQuery實(shí)現(xiàn)dropdownlist的聯(lián)動(dòng)效果(sharepoint 2007)
在sharepoint 2007網(wǎng)站中,使用jQuery實(shí)現(xiàn)dropdownlist的聯(lián)動(dòng)效果.2011-03-03
基于jQuery實(shí)現(xiàn)的向下滑動(dòng)二級菜單效果代碼
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)的向下滑動(dòng)二級菜單效果代碼,通過jquery鼠標(biāo)事件控制針對頁面元素的鏈?zhǔn)讲僮鲗?shí)現(xiàn)菜單切換的功能,非常簡單實(shí)用,需要的朋友可以參考下2015-08-08

