- ベストアンサー
inputとtextareaにデフォルト値を設定し、フォーカス時に値をクリアする方法
- フォーム部品のinputとtextareaにデフォルト値を設定し、フォーカス時に値をクリアする方法について調べています。
- 現在、フォーム部品のinput type="text"にデフォルト値を設定し、フォーカス時に値をクリアする方法を実装しています。
- inputとtextareaのonfocusイベントを利用して、デフォルト値が設定されている場合は値をクリアする処理を行うことができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
大変申し訳ありません。次のように変更してみてください。 <script language="JavaScript"> window.onload = function() { var inputs = document.getElementsByTagName("input"); for (var i=0; i<inputs.length ; i++) { if (inputs[i].type=="text") { inputs[i].onfocus = focus; inputs[i].onblur = onblur; } } var tas = document.getElementsByTagName("textarea"); for (var i=0; i<tas.length ; i++) { tas[i].onfocus = focus; tas[i].onblur = onblur; } }
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
<html> <head> <script language="JavaScript"> window.onload = function() { var inputs = document.getElementsByTagName("input"); for (var i=0; i<inputs.length ; i++) { if (inputs[i].type=="text" || inputs[i].type=="textarea") { inputs[i].onfocus = focus; inputs[i].onblur = onblur; } } } function focus() { if (this.value==this.defaultValue)this.value = ''; } function onblur() { if (this.value=='') this.value = this.defaultValue; } </script> </head> <body> <form> <input type="text" value="デフォルト値"> <div> <input type="text" name="text1" value="0"> </div> </form> </body> </html>
お礼
autyさんありがとうございます! さっそく試してみたのですが、inputのほうは動いたんですが、textareaのほうが動きませんでした。 最初の書き方が悪かったですが、input type="text"のときとは違ってtextareaはinputとは別の要素なのでそのせいかなと思うのですが。 (type=="textarea"のあたりがinput type="textarea"のように扱ってるのかもしれないと思ったので。間違ってたらすみません。) 自分でももう少しいろいろ調べてみます。
お礼
動きました! 本当にありがとうございます。 javascriptはまだまだわからないことだらけです(汗