0

ご存知のように、テキストボックスをクリックしているときにテキストボックスのデフォルト値を削除したいのですが、このコードは機能します。しかし、ボックスをクリックしてから、画面の別の部分 (つまり、テキストボックスの外) をもう一度クリックしても、データは戻ってきません。私は何をすべきか?

  <html><head><title>(Type a title for your page here)</title>

  <script type="text/javascript">
  function make_blank()
  {
  document.form1.type.value ="";
  }
  </script>

  </head>
  <body >

  <form name=form1 method=post action='test.php'>
  <input type=text name=type value='Enter your user id' onclick="make_blank();">Enter User ID
     <b>Type</b>
  <input type=submit value=Submit> </form>

  </body>
  </html>
4

2 に答える 2

2

問題の解決策は、HTML5 または XHTML (または HTML4) のどちらを使用しているかに応じて、次のいずれかです。どちらを使用しているかを述べていないので、両方を追加します。

ところで、本当に使用したいのはクリック イベントではなく、フォーカス イベントです。これは、ユーザーがキーボードやその他のアクセス キーを使用してフォーム フィールドに移動できるためです。

Quentin が正しく述べているよう、仕様は、プレースホルダー テキストの使用目的について明確です。したがって、使用しているテキストをより適切なものに更新しました。

HTML5

<input type="text" name="type" placeholder="email@example.com">

XHTML

HTML:

<input type="text" name="type" value="email@example.com"
    onfocus="make_blank(this);"  onblur="restore_placeholder(this);" />

Javascript:

function make_blank (oInput)
{
    if (!('placeholder' in oInput))
        oInput.placeholder = oInput.value;
    if (oInput.value != oInput.placeholder)
        oInput.value = '';
}

function restore_placeholder (oInput)
{
    if (oInput.value == '' && 'placeholder' in oInput)
        oInput.value = oInput.placeHolder;
}
于 2012-09-04T12:45:57.047 に答える