2011-07-23 16 views
0

私は、ユーザーがボタンをクリックしたときと2つの入力フィールドの両方にデフォルト値がある場合にそれらの入力フィールドからクラスを削除するようにしようとしています。2つのフィールドにデフォルト値がある場合

現在のところ、私はそれを複数のフィールドではなく、1つのフィールドでしか動作させることができません。

アイデア? http://jsfiddle.net/3xaBs

ありがとう!

+1

完全にクラスを削除するか、または特定のクラスを削除しますか? – AlienWebguy

+0

さらにAlienWebguyのポイントは、入力に複数のクラスがある場合はどうなりますか? – vol7ron

答えて

0

それはit works for me次のようになります。

$('#button').click(function() { 
    var one = $("#fone"); 
    var two = $("#ftwo"); 

    if ( one.val() == one[0].defaultValue 
     && two.val() == two[0].defaultValue){ 
     one.removeClass('myclass'); 
     two.removeClass('anotherclass'); 
    } 
}); 
2

はここでスケーラブルなソリューションだ。この

$('#button').click(function() { 
    if ($("#fone").val() == 'Hello World' && $("#ftwo").val() == 'Lorem Ipsum'){ 
     $('#fone').removeClass('myclass'); 
     $('#ftwo').removeClass('myclass'); 
    } 
}); 
0

を試してみてください。グループ内のすべてのフィールドにデフォルト値が設定されている場合は、必要な数だけフィールドを設定することができます。

HTML - カスタムデータ属性を利用するので、 jQueryのは、削除されますクラス:

<input type="text" id="fone" name="fone" class="myclass" data-group="my_fields" data-default="Hello World" value="Hello World" /> 
<input type="text" id="ftwo" name="ftwo" class="anotherclass" data-group="my_fields" data-default="Lorem Ipsum" value="Lorem Ipsum" /> 

<a href="#" id="button">Link</a> 

をjQueryの - グラブグループ内のフィールド、それらのデフォルト値に現在の値を比較し、カウンタをインクリメントし、合計フィールドの数と比較:

$('#button').click(function(event) { 
    event.preventDefault(); 
    var default_count = 0; 
    $('input[data-group=my_fields]').each(function(){ 
     if($(this).val() == $(this).data('default')) 
     { 
      default_count++; 
     } 
    }); 

    // If all fields have default value still... 
    if(default_count == $('input[data-group=my_fields]').length) 
    { 
     $('input[data-group=my_fields]').removeClass(); // remove all classes 
    } 
}); 

の作業のデモ:http://jsfiddle.net/AlienWebguy/3xaBs/5/

関連する問題