0

私はいくつかのJavaScriptロジックで少し迷っています。3 つのテキスト フィールドを持つフォームがあります。それらは、javascript (プレースホルダーなし) を介してデフォルト値を示します。フィールド値が変更されていない場合、フォームがフォーカスされると値がクリアされ、フォームがぼやけるとデフォルト値が復元されます。

値が変更された場合にフィールド テキストの色が灰色 (デフォルトのプレースホルダー値) から黒に変更されるように、条件付きロジックを記述する必要があります。

3 つのフィールドには異なるデフォルト値があります。Blur で一般的なスクリプトを作成して、現在のフィールドの値をチェックし、デフォルト値と比較してテストしようとしました。

  $fields = $('#webform-component-group-1 .webform-component-watermarked');
  var keys = [];
  var values = [];
  console.log($fields.length);
  $fields.each(function(){
    keys.push($(this).attr('id'));
    values.push($(this).val());
    $(this).blur(function(){
      console.log($(this).val());
      console.log($(this).val() !== values[keys.indexOf($(this).attr('id'))]);
    });
  });

ただし、ぼかしでテストを実行するとプレースホルダーの値が復元されないため、テストは常に true を返します。

この問題を処理する最善の方法は何でしょうか?

乾杯

4

2 に答える 2