• 締切済み

onclick時での・・・

onclick時での処理の質問なんですが、 passの入力フォームの右に入力した値がエラーだったらメッセージを表示する処理をし送信ボタンを押したときにonclickでその処理を呼んでます。パスを未入力の状態でボタンを押した時はエラーが表示します。もう1つ行いたいのがボタンを押す前にパスの欄を入力したら、入力した値をユーザがけしても" 未入力です"とはでないようにしたいのです。パスの値が未入力だったらパスを空にするという処理だとボタンを押す押さないに関係なく入力したものを消した時点でメッセージがでてしまうのでボタンを押す前と押した後でわける方法を教えていただけますか? ちなみに今のソースはこんな感じです function passcheck(){ var Pass = document.getElementById("pass"); var Mb = document.getElementById("mb"); if(Pass.value == ""){ Mb.innerHTML = "未入力"; Pass.style.backgroundColor = ""; Mb.className = "messegecolor"; } これをonclickでよんでます。mbとはspanのIdの要素です。 長文で分かりづらいと思いますがよろしくお願いします。

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

入力欄のonfocusでメッセージの消去、 入力欄のonblurと送信時(formのonsubmit)にチェック、 が、いいんじゃないかと思います。

回答No.1

入力したら・・・なので、onKeydownなどでFlagを立てるといいんじゃないでしょうか。 function passcheck(){ var Pass = document.getElementById("pass"); var Mb = document.getElementById("mb"); if(Pass.value == "" && passOnkeyDownFlg == 0){ Mb.innerHTML = "未入力"; Pass.style.backgroundColor = ""; Mb.className = "messegecolor"; } var passOnkeyDownFlg = 0; document.getElementById("mb").onKeydown = function(){ passOnkeyDownFlg = 1; }

saimon2
質問者

お礼

回答ありがとうございました。フラグを立てるやり方がわからなかったので 参考になりました。感謝します^^

関連するQ&A