PHP AJAX を使用してユーザー登録ページを作成しました。ユーザー名が渡されず、次の行にジャンプしてパスワードを入力できない場合は、どうすればよいですか?
コード?コード?
コード?コード? 私がコードを書きましたか?ユーザー名が存在するかどうかを確認する登録ページ、ajax.js、および ckuser.php ページです
現時点ではこれが当てはまります。ユーザー名が渡されない場合に常にフォーカスがオンになるように変更したいと考えています。ユーザー名の入力ボックスにコードを追加するにはどうすればよいですか?
はい、コードを投稿しない場合、問題がどこにあるのかをどうやって知ることができますか?
現状はこんな感じです。ユーザー名が渡されない場合、常にユーザー名の入力ボックスにフォーカスが来るように変更したいのですが、コードを追加するにはどうすればよいですか?
検証が失敗した場合は、ユーザー名入力ボックスにフォーカスを当ててください
はい、コードを投稿しない場合、問題がどこにあるのかをどうやって知ることができますか? 問題があるのではなく、この機能の追加方法がわからないのです
現状はこんな感じです ユーザー名が通らない場合は常にフォーカスがオンになるように変更したいです。ユーザー名の入力ボックスにコードを追加するにはどうすればよいですか?
検証に失敗した場合は、ユーザー名入力ボックスにフォーカスを当ててください。 コードの書き方は?
追加は元のコードにも追加する必要があります。
追加は元のコードにも追加する必要があります。
reg.php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link href="css/css.css" rel="stylesheet" type="text/css"><title>用户注册</title></head><body><script type="text/javascript" src="js/jquery-1.9.1.min.js"></script><script type="text/javascript" src="js/ajaxlist.js"></script><script>function check(){ checkUserName_1('username','16','unamespan') }</script><table align="center"> <tr> <td width="61" height="100"> </td> </tr> <tr> <td>用户名:</td> <td width="254"><input onblur="checkUserName_1('username','16','unamespan')" onfocus="onFouces('unamespan')" name=username keytype2="uname" class="input_txt" keytype="1" style="height:22px; width:222px" /><strong><font color="#FF0000">*</font> </strong></td> <td width="426"><span class=gray id=unamespan>3-16个字符</span></td> </tr> <tr> <td>密 码:</td> <td width="254"><input onblur="checkpw_1('password','6','upw')" onfocus="onFocus('upw')" class="input_txt" type=password keytype2="pw" name=password keytype="1" style="height:22px; width:222px" /><strong><font color="#FF0000">*</font> </strong></td> <td width="426"><span class=gray id=upw>6-16个字符</span></td> </tr> <tr> <td>确认密码:</td> <td width="254"><input onblur="checkSame_1('password','passsAgain','urpw')" onfocus="onFocus('urpw')" class="input_txt" type=password keytype2="rpw" name=passAgain keytype="1" style="height:22px; width:222px" /><strong><font color="#FF0000">*</font> </strong></td> <td width="426"><span class=gray id=urpw>再次输入密码</span></td> </tr> </table></body></html>
追加は元のコードにも追加する必要があります。
ajaxlist.jsvar username_help='3-16个字符(a-z,0-9,_)'; var username_ok='<img src=img/OK.png align=absbottom>用户名可以使用'; var username_error='<img src=img/NO.png align=absbottom> 用户名超过了16个字符!'; var username_error_1='<img src=img/NO.png align=absbottom> 您的用户名输入格式不正确!'; var username_exist='<img src=img/NO.png align=absbottom> 您填写的用户名已经存在!'; var username_null='<img src=img/NO.png align=absbottom> 用户名长度最少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, ""); }
追加は元のコードにも追加する必要があります。
<?phpheader('ontent-Type:text/html;charset=GB2312');//避免输出乱码$dbhost ="localhost";$dbuser ="root";$dbpassword = "root";mysql_connect($dbhost,$dbuser,$dbpassword) or die("error!");mysql_query("set names 'gbk'");mysql_select_db('db_text');$username=trim($_GET['username']);//获取注册名$sql="select username from tb_user where username='".$username."'";//查询会员名$result=mysql_query($sql);$num=mysql_num_rows($result);$rows=mysql_fetch_array($result);if($num<>0){ echo "1";}else{ echo "0";}mysql_close();//关闭数据库连接?>
ヒントを教えてください。フォーカス離脱判定チェックが失敗した場合は、再度フォーカスを取得してください。これにより、以降の入力ができなくなります。
参考までに、フォーカス外れ判定チェックに失敗したら、再度フォーカスを取得すればOKです。これにより、以降の入力ができなくなります。 私もそう思いますが、コードの書き方がわかりません
ユーザー名の入力ボックスに ID 値がありません。正常に実行できますか?
if(obj.value.length<3){
obj.keytype=1;
obj_help.innerHTML=username_null; // この文を追加すると、次のようになります。
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(); // 加上这个 } } } }
ユーザー名の入力ボックスには ID 値がありませんね。正常に実行されましたか?
if(obj.value.length<3){
obj.keytype=1;
obj_help.innerHTML=username_null; // この文を追加すると、次のようになります。
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; } } } }
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; } } } }
alter(returnStr + ':' + returnStr.length); を追加してください。
何があるか見てみましょう
returnStr=Trim(http.responseText); の後に
alert(returnStr + ':' + returnStr.length); を追加します
0:1 を見てみましょう
0が返ってきたら「そのユーザー名は使用可能」という意味です
そうですよね?
突然发现你有用 jquery
那么还要自己写那些做什么?
建议你改写成直接用 jquery 的,简单的例子
<script>$(function() { $('#username').blur(function() { $.post('check.php', {username:$(this).val()}, function(m) { $('#unamespan').html(m == 1 ? '不可用' : '可用'); if(m == 1) $('#username').focus(); }); });});</script>数字打头不可用,字母打头可用<br>用户名:<input name=username id=username class="input_txt"style="height:22px; width:222px" /><span class=gray id=unamespan>3-16个字符</span><br>
<?phpecho is_numeric($_POST['username']{0}) ? 1 : 0;
突然发现你有用 jquery
那么还要自己写那些做什么?
建议你改写成直接用 jquery 的,简单的例子
<script>$(function() { $('#username').blur(function() { $.post('check.php', {username:$(this).val()}, function(m) { $('#unamespan').html(m == 1 ? '不可用' : '可用'); if(m == 1) $('#username').focus(); }); });});</script>数字打头不可用,字母打头可用<br>用户名:<input name=username id=username class="input_txt"style="height:22px; width:222px" /><span class=gray id=unamespan>3-16个字符</span><br>
<?phpecho is_numeric($_POST['username']{0}) ? 1 : 0;