0

テキストフィールド (onfocus/onblur) に出入りするための JavaScript を作成しようとしています。フィールドに入ると消える「事前に入力された」テキストを色あせさせたいです。問題は、テキスト ボックスの値を削除する必要があるかどうかをテストすることです。1 つの方法は、入力時にテキストフィールドの値をチェックすることです。それが事前に入力されたテキストと等しい場合、値は次のように何も設定されません。

if(field.value=='username'){
    field.value='';  //removes pretyped text
    field.style.color='rgb(0, 0, 0,)';  //turns text black
}

ただし、ユーザーは事前に入力されたテキストを複製することができ、そのテキストを入力すると、それも削除されます。これは小さな問題だと思いますが、できる限りプロになりたいと思っています。この問題を解決するために、テキスト フィールドのテキストの色をテストしてみました。ユーザーはグレーの事前入力テキストの色を再現できないためです。私はこのコードを使用しました:

if(field.style.color=='rgb(150, 150, 150)'){ //default color in CSS
    field.value='';  //removes pretyped text
    field.style.color='rgb(0, 0, 0,)';  //turns text black
}

これは何らかの理由で機能しません。事前に入力されたテキストは残り、色は変わりません。CSS の色にアクセスするための構文 (field.style.color) は正しいと確信しています。これは、色を黒に設定するために機能するためです (ただし、フィールドの値をテストする場合のみ)。

どんな助けでも大歓迎です:)

編集:実際のコードに余分なコンマはありません。

4

1 に答える 1

2

@MichaelBerkowskiが言ったように、の値field.style.colorは未定義です。

オプション1

その値を JavaScript で設定した場合:

txt.style.color = 'rgb(150, 150, 150)';

コードが機能するはずです。このフィドルを参照してください。

オプション 2

以下を使用することもできます。

window.getComputedStyle(this).getPropertyValue('color');

これにより、CSS で設定された値が取得されます。このフィドルを参照してください。

于 2013-08-17T22:40:48.170 に答える