Q.以下にあるケース2において、
<<“名前:”欄が空白時にfocusが発火するようにコードしてあるにも関わらず、
何故、“名前:”欄が空白でない時に、focusが発火して、名前入力欄の内容を消去することになるのか?
御分りになる方、御教示お願い致します。>>
ケース2のソース上、14~15行目“.focus(function(){//ブルー ~ $(this).val("") 〜”は、
12行目“if($(this).val()==""){”の条件(空欄の時)にだけ実行されるようになっています。
ところが、欄内に”なまえ”文字を入力して、空欄でないにも関わらず、クリック後、“.focus~”が
実行されて空欄になります。
宜しくお願いいたします。
※尚、ケース1で、望む結果となるのですが、・・・!
================================================
(((実行結果)))
ケース1<line_14(one_focus).html>
1)“お名前:”欄に、 "入力してください" が表示される。
2)欄内をクリックすると、空欄になる。
3)欄外をクリックすると、ポップアップ(“値なし”)が表示される。
4)OKを応答後、欄内をクリックする。
5)“入力して!!!”が表示される。
6)欄内に”なまえ”文字を入力する。
7)欄外をクリックすると、ポップアップ(“値あり”)が表示される。
8)OKを応答後、欄内をクリックする。
9)欄内の”なまえ”文字は、そのまま残っている。
ケース2<line_14(focus).html>
1)“お名前:”欄に、 "入力してください" が表示される。
2)欄内をクリックすると、空欄になる。
3)欄外をクリックすると、ポップアップ(“値なし”)が表示される。
4)OKを応答後、欄内をクリックする。
5)“入力して!!!”が表示される。
6)欄内に”なまえ”文字を入力する。
7)欄外をクリックすると、ポップアップ(“値あり”)が表示される。
8)OKを応答後、欄内をクリックする。
9)欄内の”なまえ”文字は、消去される。
A)上記のケース1、2の差異は、
a)実行結果では、9)だけである。
b)ソース上では、14行目
ケース1では、”$(this).val("入力して!!!")~.one("focus",function(){//ブルー”
ケース2では、”$(this).val("入力して!!!")~.focus(function(){//ブルー”
================================================
(((ソース)))
ケース1<line_14(one_focus).html>
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>line_14(one_focus)</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(function(){ $("input").val("入力してください").css("color","#EDDB35").one("focus",function(){//黄色 $(this).val("").css("color","#E022CE");//赤紫 }).blur(function(){ if($(this).val()==""){ alert('値なし'); $(this).val("入力して!!!").css("color","#7460E8").one("focus",function(){//ブルー<==問題箇所。> $(this).val("").css("color","#45E572");//緑 }); }else{alert('値あり');} }); }); </script> </head> <body> お名前:<input type="text" value=""> </body> </html> *********************************************
ケース2<line_14(focus).html>
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>line_14(focus)</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(function(){ $("input").val("入力してください").css("color","#EDDB35").one("focus",function(){//黄色 $(this).val("").css("color","#E022CE");//赤紫 }).blur(function(){ if($(this).val()==""){ alert('値なし'); $(this).val("入力して!!!").css("color","#7460E8").focus(function(){//ブルー<==問題箇所。> $(this).val("").css("color","#45E572");//緑 }); }else{alert('値あり');} }); }); </script> </head> <body> お名前:<input type="text" value=""> </body> </html> *********************************************
回答1件
あなたの回答
tips
プレビュー