私は.NETでフォームに取り組んでおり、標準のフィールドバリデーターを使用しています。ユーザーが必須フィールドに入力せずに「送信」ボタンをクリックした場合(requiredfieldvalidator
タグが表示されるようになる)、入力フィールドの背景色を変更する必要があります。
これはrequiredfieldvalidator
、入力フィールドの直前に配置することで実行しました。ユーザーが「送信」ボタンをクリックすると、バリデーターがからdisplay:none
に変わりますdisplay:inline
。しかし、私が興味を持っているのは、入力フィールドに別の背景色を設定することなので、次のようにしました。
CSS
.error[style*="inline"] + input { background-color: #e8bab2; }
HTML
<span class="error" style="display:none;"></span>
<input type="text">
<input type="button" id="sendme" value="Send" />
JS(バリデーターがこの部分を処理します)
$(function() {
$("#sendme").click(function() {
$(".error").css("display","inline");
});
});
問題は、ボタンをクリックするとFirefoxでフィールドが赤く点灯することですが、Webkit(Chrome 19 / Safari 5.1)では、入力フィールドをクリックするまで入力フィールドの背景色が変わりません。
私はフィドルを作成しました。FirefoxブラウザとWebkitブラウザの動作を比較してください。
(注:より「クリーン」にするために、すべてのJSロジックが削除されています)