1

私は現在htmlフォームを構築しており、jqueryを使用して検証しています。

各入力フィールドは次のように設定されます。

<div class="controls">
    <input type="text" class="input-xlarge" name="name" id="name">
    <div class="info">&nbsp;</div>
    <div class="valid" style="display:none;">&nbsp;</div>
</div>

これまでの私のjqueryは次のとおりです。

$('.controls input').blur(function() {                   
    if( !$(this).val() ) {                    
        $(this).css('border-color','red');
        $(this).find('.info').css('display','none');
        $(this).find('.error').css('display','inline-block');

ユーザーがフォームを表示すると、info div が表示されます。情報を何も入力せずに入力をタブ移動してフォームを続行すると、エラー クラスが表示され、情報クラスが削除されます。

どこが間違っているのかについてのアイデアはありますか?

乾杯、ダン

4

2 に答える 2

2

これを試してください。ここでメソッドを使用する必要がありsiblingsます:

$('.controls input').blur(function () {
    if (!$(this).val()) {
        $(this).css('border-color', 'red');
        $(this).siblings('.info').css('display', 'none');
        $(this).siblings('.error').css('display', 'inline-block');
    }
});
于 2013-05-10T08:16:06.440 に答える
0

セレクターは入力フィールドのみを取得します。

コード $(this) のコールバック ブロックで、入力タグを参照します。

これを試して:

     $(this).css('border-color','red');

     $(this).parents('.controls').find('.info').css('display','none');
     $(this).parents('.controls').find('.error').css('display','inline-block');
于 2013-05-10T08:17:18.347 に答える