1.檢查input是否為空
function check() {
// $.trim()方法:去掉字符串中的前后空格
var value = $.trim($("選擇器").val())
if(value == '') {
alert("用戶名不能為空");
return false;
}
return true;
}
?實(shí)例:
$(function(){
$("submitBtn").click(function(){
var flag = true;
$(".input1").each(function(){
if($.trim($(this).val()) == ''){
alert("輸入不能為空勉抓!");
flag = false;
return false;
}
})
if(flag == true){
alert("添加成功");
}
})
})
??該技巧通常使用在表單驗(yàn)證中。submitBtn是表單中的sumbit類型候学。如果返回值是false琳状,那么將會(huì)阻止該表單提交內(nèi)容。
??注意:即使阻止表單的內(nèi)容提交盒齿,但是在ssm框架中念逞,表單還會(huì)action到指定url中,此時(shí)因表單內(nèi)容為空边翁,可能會(huì)引起數(shù)據(jù)庫(kù)操作錯(cuò)誤(錯(cuò)誤碼:500)翎承。解決方法:在Controller中添加邏輯驗(yàn)證。如下:
??如果傳入的參數(shù)合法符匾,那么返回成功操作邏輯(這里沒有返回zhi)叨咖;
?Q1:為什么要用if flag == true,而不是直接使用如下代碼啊胶?
alert("添加成功");
return true;
??因?yàn)镴Query中的each遍歷中甸各,并沒有break、continue方法焰坪。如果想跳出循環(huán)或continue趣倾,只能以return false、return true代替某饰。但return false是跳出整個(gè)each循環(huán)儒恋,return true僅僅是跳出本次循環(huán)。如果使用上述代碼黔漂,一旦添加成功诫尽,就會(huì)出現(xiàn)好多次alert("添加成功");
??所以,用一個(gè)flag炬守,可以實(shí)現(xiàn)類似break的操作牧嫉。
??但是有缺點(diǎn):因?yàn)椴还茉趺礃樱紩?huì)提交給action减途,所以即使輸入不合法酣藻,也會(huì)向服務(wù)器請(qǐng)求一次,會(huì)造成服務(wù)器資源不必要的浪費(fèi)观蜗。解決方法:使用form的onsubmit屬性臊恋。同時(shí)也要使用flag標(biāo)記,返回函數(shù)值(false true)墓捻。如下:
??這樣一來抖仅,表單驗(yàn)證就會(huì)在客戶端本地進(jìn)行驗(yàn)證,而不用提交到服務(wù)器進(jìn)行驗(yàn)證砖第。如果邏輯正確撤卢,假設(shè)用戶輸入不正確并點(diǎn)擊提交,那么會(huì)彈出alert窗口梧兼;同時(shí)用戶填入的信息并不會(huì)消失放吩。如下:
??需要注意:于客戶端上檢驗(yàn)合法性時(shí)羽杰,僅適用于一些沒有風(fēng)險(xiǎn)的檢驗(yàn)渡紫,否則請(qǐng)交給服務(wù)端檢驗(yàn)(validation jar包)到推。
2. 獲得容器的屬性
$("選擇器").attr("屬性名");
?實(shí)例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script src="jquery.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<input type="text" class="name1" id="ipt1" value="test1"/>
<input type="text" class="name1" id="ipt2" value="test2"/>
<input type="button" id="btn1" value="提交"/>
<script>
$(function(){
$("#btn1").click(function(){
$(".name1").each(function(){
if($(this).val()=="123"){
alert($(this).attr("id"))
}
})
})
})
</script>
</body>
</html>
??如果input內(nèi)為123,則彈出該input的id值惕澎。
??有時(shí)候可用于:form表單中有多個(gè)submit莉测,想要給每個(gè)submit賦予不同的action,那么就可以使用attr()方法修改action屬性唧喉。如下: