我用PHP AJAX 寫了一個使用者註冊頁面 如果使用者名稱沒有通過的話 不能跳到下一行輸入密碼 該怎麼做?
回複討論(解決方案)
代碼? 代碼?
代碼? 代碼? 我寫的代碼嗎?就是一個註冊頁面 一個ajax.js 一個檢查使用者名稱是否存在的ckuser.php頁面
目前是這樣的 我想改成如果使用者名稱沒有通過,焦點一直在使用者名稱的那個輸入框 改怎麼加代碼?
是啊,不貼出代碼,怎麼知道問題出在哪?
目前是這樣的 我想改成如果使用者名稱沒有通過,焦點一直在使用者名稱的那個輸入框 改怎麼加代碼?
沒通過校正的話,在讓使用者名稱輸入框獲得焦點就行了
是啊,不貼出代碼,怎麼知道問題出在哪? 不是出現問題,是我不知道該怎麼添加這個功能
目前是這樣的 我想改成如果使用者名稱沒有通過,焦點一直在使用者名稱的那個輸入框 改怎麼加代碼?
沒通過校正的話,在讓使用者名稱輸入框獲得焦點就行了 代碼改怎麼寫啊?
添加也要在原來的代碼上加,把你的代碼貼出來吧。
添加也要在原來的代碼上加,把你的代碼貼出來吧。
reg.php使用者註冊
| |
| 使用者名稱: |
* |
3-16個字元 |
| 密 碼: |
* |
6-16個字元 |
| 確認密碼: |
* |
再次輸入密碼 |
添加也要在原來的代碼上加,把你的代碼貼出來吧。
ajaxlist.jsvar username_help='3-16個字元(a-z,0-9,_)'; var username_ok='使用者名稱可以使用'; var username_error=' 使用者名稱超過了16個字元!'; var username_error_1=' 您的使用者名稱輸入格式不正確!'; var username_exist=' 您填寫的使用者名稱已經存在!'; var username_null=' 使用者名稱長度最少3位!'; function getHTTPObject(){var xmlhttp = false; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType('text/xml'); } }else{try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(E){ xmlhttp = false; } } } return xmlhttp; } var http = getHTTPObject(); function getAbsLeft(e){ var l=e.offsetLeft; while(e=e.offsetParent) l += e.offsetLeft; return l; } function getAbsTop(e) { var t=e.offsetTop; while(e=e.offsetParent) t += e.offsetTop; t=t+18; return t; } //...............................................................function onFouces(str){document.getElementById(str).className='word_help';if(str=='unamespan'){document.getElementById(str).innerHTML=username_help;}}function backState(str){if(str=='uname'){document.getElementById('username').keytype=0;document.getElementById('unamespan').className='gray';document.getElementById('unamespan').innerHTML=username_ok;}}function checkUserName_1(obj_str,num,obj_strl){var obj=document.getElementById(obj_str);var obj_help=document.getElementById(obj_strl);obj.keytype=0;if(obj.value.length<3){obj.keytype=1;obj_help.innerHTML=username_null;obj_help.className=word_error;return false;}if(obj.value.length>num){obj.keytype=1;obj_help.innerHTML=username_error;obj_help.className=word_error;return false;}//檢查是否有不符合規定的字元 var name_str=obj.value; //name_str=name_str.replace(/[\u4e00-\u9fa5]/g,''); name_str=name_str.replace(/[a-zA-Z0-9_]/g,''); name_str=name_str.replace(/-/g,''); if(name_str!=''){ obj.keytype=1; obj_help.innerHTML=username_error_1; obj_help.className=word_error; return false; } //檢測使用者名稱是否存在var username = document.getElementById('username').value;url = "checkuserreg.php?username="+username;http.open("GET",url,true);http.onreadystatechange = handleHttpResponseForUserName_1;http.send(null);if(obj.keytype==0){ backState("uname"); } }function handleHttpResponseForUserName_1(){ if(http.readyState == 4){ if (http.status == 200) { returnStr=Trim(http.responseText); if(returnStr=="1"){ var obj_1=document.getElementById("unamespan"); obj_1.innerHTML=username_exist; document.getElementById("username").keytype=1; obj_1.className=word_error; return false; } } } } function Trim(str) { return RTrim(LTrim(str)); } function LTrim(str) { return str.replace(/^[ \t\n\r]+/g, ""); } function RTrim(str) { return str.replace(/[ \t\n\r]+$/g, ""); }
添加也要在原來的代碼上加,把你的代碼貼出來吧。
0){ echo "1";}else{ echo "0";}mysql_close();//關閉資料庫連接?>
給你個思路,如果焦點離開判斷校正沒通過的話,再擷取焦點就行了。這樣就沒辦法進行後面的輸入了。
給你個思路,如果焦點離開判斷校正沒通過的話,再擷取焦點就行了。這樣就沒辦法進行後面的輸入了。 我也是這樣想的 可是我不知道該怎麼寫代碼
你的username input 框沒有id值,能運行成功嗎?
if(obj.value.length<3){
obj.keytype=1;
obj_help.innerHTML=username_null;
obj_help.className=word_error;
obj.focus(); //加上這句,下面的驗證類似。
return false;
}
function handleHttpResponseForUserName_1(){ if(http.readyState == 4){ if (http.status == 200) { returnStr=Trim(http.responseText); if(returnStr=="1"){ var obj_1=document.getElementById("unamespan"); obj_1.innerHTML=username_exist; document.getElementById("username").keytype=1; obj_1.className=word_error; return false; } else { document.getElementById("username").focus(); // 加上這個 } } } }
function handleHttpResponseForUserName_1(){ if(http.readyState == 4){ if (http.status == 200) { returnStr=Trim(http.responseText); if(returnStr=="1"){ var obj_1=document.getElementById("unamespan"); obj_1.innerHTML=username_exist; document.getElementById("username").keytype=1; obj_1.className=word_error; return false; } else { document.getElementById("username").focus(); // 加上這個 } } } } 這個起作用了 就是合格通過不了,不符合的能通過
你的username input 框沒有id值,能運行成功嗎?
if(obj.value.length<3){
obj.keytype=1;
obj_help.innerHTML=username_null;
obj_help.className=word_error;
obj.focus(); //加上這句,下面的驗證類似。
return false;
} 這個好像沒有作用 樓下的有作用了
噢,你是不合法(使用者已存在)時返回 1
function handleHttpResponseForUserName_1(){ if(http.readyState == 4){ if (http.status == 200) { returnStr=Trim(http.responseText); if(returnStr=="1"){ var obj_1=document.getElementById("unamespan"); obj_1.innerHTML=username_exist; document.getElementById("username").keytype=1; obj_1.className=word_error; document.getElementById("username").focus(); // 加上這個 return false; } } } }
噢,你是不合法(使用者已存在)時返回 1
function handleHttpResponseForUserName_1(){ if(http.readyState == 4){ if (http.status == 200) { returnStr=Trim(http.responseText); if(returnStr=="1"){ var obj_1=document.getElementById("unamespan"); obj_1.innerHTML=username_exist; document.getElementById("username").keytype=1; obj_1.className=word_error; document.getElementById("username").focus(); // 加上這個 return false; } } } } 高手 放在裡面不起作用了 怎麼回事啊
在 returnStr=Trim(http.responseText); 後面加上
alert(returnStr + ':' + returnStr.length);
看看有什麼
在 returnStr=Trim(http.responseText); 後面加上
alert(returnStr + ':' + returnStr.length);
看看有什麼 0:1
那不是對的嗎?
返回的是 0 就顯示“使用者名稱可以使用”
那不是對的嗎?
返回的是 0 就顯示“使用者名稱可以使用” 是啊 可是剛才寫的那段代碼加在裡面不起作用,加在外面完全又完全相反,高手兄,該怎麼改啊
突然發現你有用 jquery
那麼還要自己寫那些做什嗎?
建議你改寫成直接用 jquery 的,簡單的例子
數字打頭不可用,字母打頭可用
使用者名稱:3-16個字元
check.php
是不是很簡單呢? 突然發現你有用 jquery
那麼還要自己寫那些做什嗎?
建議你改寫成直接用 jquery 的,簡單的例子
數字打頭不可用,字母打頭可用
使用者名稱:3-16個字元
check.php
是不是很簡單呢? OK 謝了 高手兄