• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:inputとtextareaに)

inputとtextareaにデフォルト値を設定し、フォーカス時に値をクリアする方法

このQ&Aのポイント
  • フォーム部品のinputとtextareaにデフォルト値を設定し、フォーカス時に値をクリアする方法について調べています。
  • 現在、フォーム部品のinput type="text"にデフォルト値を設定し、フォーカス時に値をクリアする方法を実装しています。
  • inputとtextareaのonfocusイベントを利用して、デフォルト値が設定されている場合は値をクリアする処理を行うことができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.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; } }

otopion
質問者

お礼

動きました! 本当にありがとうございます。 javascriptはまだまだわからないことだらけです(汗

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

<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>

otopion
質問者

お礼

autyさんありがとうございます! さっそく試してみたのですが、inputのほうは動いたんですが、textareaのほうが動きませんでした。 最初の書き方が悪かったですが、input type="text"のときとは違ってtextareaはinputとは別の要素なのでそのせいかなと思うのですが。 (type=="textarea"のあたりがinput type="textarea"のように扱ってるのかもしれないと思ったので。間違ってたらすみません。) 自分でももう少しいろいろ調べてみます。

関連するQ&A

専門家に質問してみよう