- 締切済み
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の要素です。 長文で分かりづらいと思いますがよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- steel_gray
- ベストアンサー率66% (1052/1578)
入力欄のonfocusでメッセージの消去、 入力欄のonblurと送信時(formのonsubmit)にチェック、 が、いいんじゃないかと思います。
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
入力したら・・・なので、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; }
お礼
回答ありがとうございました。フラグを立てるやり方がわからなかったので 参考になりました。感謝します^^