0

次の点についてアドバイスをいただけますか。

登録フォームがあり、その中にテキスト領域があります

<form id="register" name="register" method="post" action="register.php">

<textarea rows="5" id="bio" name="bio" method="post">Biographical information</textarea>

</form>

次のように、Javaスクリプトを使用して、onfocusイベントとonblurイベントのイベントハンドラーを作成しようとしているため、デフォルトのテキストはフォーカス時に削除され、ぼかし時に復元されます。

var bioField = document.getElementById("bio");

bioField.onfocus = function() {
    if (bioField.value == "Biographical information") {
        bioField.value = "";
    }
};

bioField.onblur = function() {
    if (bioField.value == "") {
        bioField.value = "Biographical information";
    }
};

idで要素を取得することで機能すると思いましたが、そうではないようです。名前/IDの他の重複は存在しません。

どんな助けでも大歓迎です。みんなありがとう

4

4 に答える 4

1

placeholder 属性を使用します。

<textarea rows="5" id="bio" name="bio" method="post" placeholder="Biographical information"></textarea>
于 2013-01-17T16:10:29.250 に答える
0

私の推測では、コードをそのまま<script>タグ内に<head>配置したため、スクリプトを実行してもフォームはまだ読み込まれていません。

フォームの下に移動する<script>か、すべてを次のようにラップしますwindow.onload

window.onload = function(){
   // Code goes here
};
于 2013-01-17T16:20:58.547 に答える
0

次の 2 つの解決策があります。

  1. あなたが書いた JavaScript コードを使用しないために、次のコードを使用します。

    <textarea cols="30" rows="5" id="bio" name="bio" onfocus="this.value = '' " onblur="this.value = 'All about you'">Biographical information</textarea>

  2. JavaScript コードはコントロールの前 (私が推測するヘッダー内) にあると思います。このため、onfocus および onblur プロパティは初期化されません。スクリプトをドキュメントの最後 (タグの前) に配置する必要があります。
    また、スクリプトは、内部にある現在のテキスト (「伝記情報」) ではなく、別のテキスト (「あなたのすべて」) を検索しています。ドキュメントの に JavaScript コードを挿入しても、コードは機能します。

于 2013-01-17T17:31:12.680 に答える
0

おそらく問題は、プレースホルダーのデフォルトが「経歴情報」であり、スクリプトが「あなたについてのすべて」をテストしていることです。私がこれを投稿したときに行った変更は、まさにあなたが必要としていたものです。

var bioField = document.getElementById("bio");

bioField.onfocus = function() {
    if (bioField.value == "Biographical information") {
        bioField.value = "";
    }
};

bioField.onblur = function() {
    if (bioField.value == "") {
        bioField.value = "Biographical information";
    }
};

http://jsfiddle.net/YeaTQ/1/

于 2013-01-17T16:14:53.830 に答える