• 締切済み

passでのチェック

<input type="text" name="pass" id="pass" value=""> 上記のようなパスの入力欄で ・入力の度にチェックすること(onchangeなど複数のイベントハンドラ使用) ・文字列は6文字以上、数値、小文字の英字、大文字の英字が含まれる場合、文字列はパスワードとして「安全」とする こういった場合の記述の仕方を教えていただけますか?文字指定はわかったんですが、入力の度にというのがいまいちわからなかったので・・・。

みんなの回答

noname#84373
noname#84373
回答No.3

<html> <body> <script> var ff=''; function passcheck(){ var Pass = document.getElementById("pass"); var Mb = document.getElementById("mb"); if(Pass.value == "" && !ff){ Mb.innerHTML = "未入力"; } } </script> <input type="text" name="pass" id="pass" value="" onKeyup="ff=1"> <span id="mb"></span> <input type="button" value="chk" onClick="passcheck()">

saimon2
質問者

お礼

_pipi_さん、毎回私のわかりづらい質問に回答していただいてありがとうございます。今回も参考になりました。ありがとうございました。

noname#84373
noname#84373
回答No.2

<html> <body> <input type="text" name="pass" id="pass" value="" onKeyup="chk()"> <span id="mb"></span> <script> function chk(){ var f=($V('pass').length>5 && $V('pass').match(/[0-9]/)&& $V('pass').match(/[a-z]/)&& $V('pass').match(/[A-Z]/) ); if(!$V('pass')){ $('mb').innerHTML=''; $('pass').style.backgroundColor=''; } else { $('mb').innerHTML=f?'o':'x'; $('pass').style.backgroundColor=f?'#0f0':'#f00'; } } function $(o){ return document.getElementById(o); } function $V(o){ return $(o).value; } </script> 以下入力ミス? >="6" && (/[A-Z]/) && (/[0-9]/)

saimon2
質問者

お礼

回答ありがとうございます。なんとかできました。 指摘頂いた部分は入力ミスです。 ありがとうございました。

noname#84373
noname#84373
回答No.1

<html> <body> <input type="text" name="pass" id="pass" value="" onKeyup="chk()"> <input type="submit" id="go" value="安全" disabled> <script> function chk(){ $('go').disabled=($V('pass').length>5 && $V('pass').match(/[0-9]/)&& $V('pass').match(/[a-z]/)&& $V('pass').match(/[A-Z]/) )?false:true; } function $(o){ return document.getElementById(o); } function $V(o){ return $(o).value; } </script>

saimon2
質問者

お礼

回答ありがとうございます。上記の記述で動きました。 あと、また教えていただきたいことがあるのですが、 function passcheck(){ var Pass = document.getElementById("pass"); if(Pass.value.match(/[a-z]/) && (/[A-Z]/) && (/[0-9]/) && Pass.value.length >="6"){ } ↑この処理はjavascriptを別ファイルに記述してhtmlの方で呼び出してます。(onkeyup使ってます。) こういう書き方で文字指定チェックを行った時にパスのテキストボックスの右側に、条件が真なら○を表示してテキストボックスの背景色を緑に、偽なら右側に×を表示して背景色を赤に変えるという処理をしたいのですが調べてもわからなかったので教えていただけますか? また未入力の場合は何も表示しないで元の色に戻すという処理もあるのでできればそちらもお願いします。丸投げな感じで申し訳ないのですが 皆目見当がつかないのでどなたかよろしくお願いいたしますm(__)m

関連するQ&A

  • JavaScriptで入力チェック

    ////サンプル//// <p><input type="text" value="" name="box_1" /></p> <p><input type="text" value="" name="box_2" /></p> <p><input type="text" value="" name="box_3" /></p> <p><input type="text" value="" name="box_4" /></p> Javascriptで入力チェックをして 入力がされていたらpタグとinputタグの間に「○」を表示させたいのですが どのように実装したら良いでしょうか? ・inputタグは4つだけではなくたくさんあります ・DBを使っているのでページを更新しても○が消えないようにしたいです よろしくお願いします!

  • HTMLのテキストボックスへのドラッグ&ドロップについて

    HTMLのテキストボックスに文字列(テキスト)をドラッグ&ドロップしたときに、イベントを発生させたいのですが分かりません。 <INPUT TYPE="text" NAME="test" VALUE="" ondragdrop="alert('test!')"> というのを作ってみましたが、ondragdropはファイルにしか対応していないみたいなので無理でした。 ondragoverは反応しましたが、マウスを離す前にイベントが発生するため、こちらの意図する動作にはなりません。 やはりそういうイベントハンドラは用意されていないのでしょうか?

  • CFLOOPで計算させたいのですが(2)

    先ほどとの関連になりますが、 <SCRIPT LANGUAGE="JavaScript"> <!--JavaScript function TotalSum(i) { var evalStr = eval("document.sum" + i); with(evalStr) { if(!isNaN(text1.value) && !isNaN(text2.value) && !isNaN(text3.value) && text1.value && text2.value && twxt3.value); { text4.value = eval(text1.value) + eval(text2.value) - eval(twxt3.value); } if( !isNaN(text5.value) && !isNaN(text6.value) && text5.value && text6.value); { text7.value = eval(text4.value) + eval(text5.value) + eval(text6.value); } } } // --> </script> </head> <body> <TABLE BORDER="1"> <FORM name="myform" action="url" method="post" onSubmit="TotalSum(' + i + ');return false;"> <cfloop index="i" from="1" to="10"> <TR> <TD><input type="text" name="text1" onChange="TotalSum('+i+')" value="0"></TD> <TD><input type="text" name="text2" onChange="TotalSum('+i+')" value=""></TD> <TD><input type="text" name="text3" onChange="TotalSum('+i+')" value="0"></TD> <TD><input type="text" name="text4" onChange="TotalSum('+i+')" value="0"></TD> <TD><input type="text" name="text5" onChange="TotalSum('+i+')" value=""></TD> <TD><input type="text" name="text6" onChange="TotalSum('+i+')" value=""></TD> <TD><input type="text" name="text7" onChange="TotalSum('+i+')" value="0"></TD> </TR> </cfloop> </form> </TABLE> </body> また、見当はずれなこと言っていたらすみません。

  • phpでmysqlに接続してデータを登録

    入力フォームをhtmlに作って それをidとpassを入力して それをmysqlに登録したいのですが うまくできません <html> <head> <meta http-equiv="Content-Type"content="text/html;charset="utf-8"/> <title>登録</title> </head> <body> <form action="touroku.php"method="post"> 登録id :<br /> <input type="text"name="id"size="10"value="" /><br /> パス:<br /> <input type="text"name="pass"size="10"value="" /><br /> <br /> <input type="submit"value="登録する" /> </form> </body> </html> という感じに 入力フォームは作ったのですが それからそれをmysqlにどうやって登録をするのかわかりません 詳しく解説されてわかりやすいサイトなどを教えてください もしくは教えてください

  • 入力制限アラートと送信制限

    以下のフォームが合った場合に (1),や@や*、バカ等の文字など文字入力があった場合にアラートで表示する方法がわかりません。参考になるようなサイトやアドバイスをお願いします。 また、 同時にsubmitボタンが2度押しできないようにするにはどうしたらよいでしょうか? <form action="./***" method="POST" name="check"> <input type=text name=data1 value="0" size=30> <input type=text name=data2 value="0" size=30> <input type=text name=data3 value="0" size=30> <input type=submit value="送信する"> </form>

  • input textでペーストした瞬間フォーカス移動

    input type="textが縦にたくさんあり、 text1[n番目]に文字をペーストするのですが ペーストした瞬間フォーカスをtext1[n]からtext1[n+1]に移動したいのですがonChangeだとうまくペーストした瞬間に移動できません。 良い方法はあるでしょうか。 <input type="text" size="21" value="" name="text1"><br> <input type="text" size="21" value="" name="text1"><br> ・ ・ ・

  • 同じFunctionで、同じ計算させたいのですが

    私は今、以下のようにここで教えていただいたプログラムを参考に組んでは見たものの、同じ行をいくつもコピペすると計算されなくなってしまいます。1行だけの計算でしようとするとうまく計算されるのですが・・・ <HTML> <HEAD> <TITLE> タイトルバーに表示されるテキスト </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!--JavaScript function SUM(){ if(!isNaN(document.sum.text1.value) && !isNaN(document.sum.text2.value) && !isNaN(document.sum.text3.value) && document.sum.text1.value && document.sum.text2.value && document.sum.text3.value){ document.sum.text4.value = eval(document.sum.text1.value) + eval(document.sum.text2.value) - eval(document.sum.text3.value) } if( !isNaN(document.sum.text5.value) && !isNaN(document.sum.text6.value) && document.sum.text5.value && document.sum.text6.value){ document.sum.text7.value = eval(document.sum.text4.value) + eval(document.sum.text5.value) + eval(document.sum.tex6.value) } } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="sum" onSubmit="SUM();return false;"> A<INPUT TYPE="text" NAME="text1" onChange="SUM()" SIZE="10"><BR> B<INPUT TYPE="text" NAME="text2" onChange="SUM()" SIZE="10"><BR> C<INPUT TYPE="text" NAME="text3" onChange="SUM()" SIZE="10"><BR> D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM()" SIZE="10"><BR> E<INPUT TYPE="text" NAME="text5" onChange="SUM()" SIZE="10"><BR> F<INPUT TYPE="text" NAME="text6" onChange="SUM()" SIZE="10"><BR> G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM()" SIZE="10"><BR> </FORM> </BODY> </HTML>

  • 同じ作業を複数させる場合

    ちょっとタイトルのつけ方が下手でしたが、やりたいことはこんな感じです。 <FORM name="f1"> <INPUT type="text" name="t1" onblur="document.f1.t1a.value=this.value,document.f1.t1b.value=this.value.length;"> <INPUT type="text" name="t1a"> <INPUT type="text" name="t1b"> <FORM> と、このようなフォームをつくり、t1に半角文字を入力した際にt1a、t1bに入力された文字と その文字数を書き出すようにしたいのですが、これが複数あった場合にうまく省略する方法はないものか? と思い質問させていただきました。仮に、 <FORM name="f1"> <INPUT type="text" name="t1" onblur="document.f1.t1a.value=this.value,document.f1.t1b.value=this.value.length;"> <INPUT type="text" name="t1a"> <INPUT type="text" name="t1b"> <INPUT type="text" name="t2" onblur="document.f1.t2a.value=this.value,document.f1.t2b.value=this.value.length;"> <INPUT type="text" name="t2a"> <INPUT type="text" name="t2b"> <FORM> と、このような場合で10個も20個も同じ入力欄があった際に最もスクリプトを省略するには どのようにしたらいいのかがわかりません。 同じことを何度も繰り返し書くのは非効率に思えてならないのでどなたかいい方法をご存知の方の 知恵をお借りしようと思った次第です。よろしくお願いします。

  • タグの中のname, value値の取得

    ある文字列中に次のほぼ同値なinputタグ、 1:<input type="text" name="A" value="B"> 2:<input type='text' name='A' value='B'> 3:<input type=text name=A value=B> がある場合、この中からtext, A, B を抽出しようと思っています. (さらに、1,2のA, B に半角スペースが含まれる場合も考慮) 自分なりの方法の概略は、 $_ = $str; ~ /(<input[^>]*?>)/; $tag = $1; として、<input・・・>を得て、 $tag =~ /name=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $name = $1; $tag =~ /value=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $value = $1; としていたのですが、nameとvalue値が\sを含む場合や、<input>タグの中の"と"の間に > が含まれる場合に正しく動作しません。 何いい方法はないでしょうか.

    • ベストアンサー
    • Perl
  • Javascriptの入力チェック、日本語について

    Javascriptの入力チェックをホームページ内に使いたいのですが、 ●住所(都道府県) ●中学校・高校 のようにnameに「()」や「・」がある文字を設定するとエラーになってしまい入力チェックできません。 ■エラーになる例 if(document.f.住所(都道府県).value=="") { errormsg+="住所(都道府県)を入力してください。\n"; } if(document.f.中学校・高校.value=="") { errormsg+="中学校・高校を入力してください。\n"; } HTMLは以下のようにしています。 <input type="text" name="住所(都道府県)"> <input type="text" name="中学校・高校"> nameに日本語を使う場合、どのようにしたら入力チェックができるのでしょうか。 どうぞよろしくお願い致します。

専門家に質問してみよう