1

私は.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ロジックが削除されています)

4

3 に答える 3

0

これを試して:

$(function() {  
    $("#sendme").click(function() {  
        $(".error").css("display","inline");  
        $('.error[style*="inline"] + input').css("background-color","#e8bab2");  
    });
});​

デモ: http: //jsfiddle.net/fhbUH/3/

于 2012-06-19T08:22:15.500 に答える
0

それが起こります!これをチェックしてください:

クロム

于 2012-06-19T08:17:57.547 に答える
0

テストしたブラウザだけでなく、一部のブラウザが失敗しています。もし私があなたなら、クラスを変更しますinput--jQueryにはこのためのメソッドがあります。(addclassremoveclass

于 2012-06-19T08:23:50.150 に答える