登入頁面登入名和密碼錯誤提示解決方案
阿新 • • 發佈:2019-01-25
登入頁面需要做到登入名和密碼錯誤的提示,效果如下圖示所示:
需要在form提交的地方寫下onsubmit="return loginCheck();" ,onsubmit是再提交之前進行的方法,你可以在這個方法裡寫邏輯校驗,如果不符合要求,返回 false,form就不會提交。程式碼如下:
<form action="<c:url value='/loginCheck.htm' />" method="post" id="login_form" onsubmit="return loginCheck();">
//登入前校驗使用者名稱和密碼是否正確 function loginCheck(){ var name = $("#loginUser").attr("value"); //使用者名稱 var pwd = $("#loginPwd").attr("value"); //密碼 var datas = new Object(); //返回來的結果 $.ajax({ type: "post", contentType:"application/string", dataType:"json", async:false, url : "${base}/loginResult.htm?name="+name+"&pwd="+pwd, success: function (data) { datas = eval("("+data+")"); } }); if(datas.result == "nameFalse"){ //使用者名稱不正確 layer.tips('使用者名稱不存在!', '#loginUser', { tips: [2, '#FF3030'], time: 2000 }); return false; }else if(datas.result == "pwdFalse"){ //密碼不正確 layer.tips('密碼不正確 !', '#loginPwd', { tips: [2, '#FF3030'], time: 2000 }); return false; }else{ return true; } }
這裡的提示是用到國產的外掛layer.js,很實用,支援國產。運用jQuery 的ajax返回資料的時候注意把字串轉換成 json物件,運用eval()方法;
最後是我需要ajax執行之後,才開始下面的邏輯判斷,需要配置 async:false,不然預設非同步進行,這裡需要注意了。