2016-04-25 13 views
0

JQueryの指導者ではないので、頭痛を与えます。 ので、準備ができて私の文書に私はクラスが変わっ見コンソールでJQueryクラスが追加されても変更に反映されない

$('#Table').on('change', '#TeamValue', function (event) { 
     $(this).removeClass("valid"); 
     $(this).addClass("input-validation-error"); 
     var myClass = $(this).attr('class'); 
     console.log(myClass); 
    } 
}); 

を持っていますが、前面にそうではありません。なぜこうなった? また、コンテンツを削除すると、入力検証エラークラスがうまく表示されることがわかりました。わかりません。 誰も私に手を差し伸べることはできますか?

ありがとうございます!クラス変更前の

入力:

<input id='TeamValue' type='text' class='small-textbox'> 

コンソールログ:

text:a -.js:451:1 
wroing! -.js:456:13 
small-textbox input-validation-error 

その要素のHTML彼のクラスが変更された後:

<input id="TeamValue" onkeyup="Restriction()" class="small-textbox valid" type="text"> 
+0

あなたは、そのクラスに関連付けられているCSSが効果を取っていないことを意味しますか?また、いくつかのhtmlを投稿できますか? – nurdyguy

+0

最初の投稿に詳細を追加しました。クラスは何とか私の関数が終了した後に削除され、私はどのようにしているのかわかりません。 –

+0

そこには正しいものがあります。干渉する可能性のあるコードが他にありますか? – nurdyguy

答えて

-1

あなたが参照している$(this)コンテキストおそらく#Table要素であり、要素ではありません要素です。私の前提は、クラスの変更が代わりにその要素で発生しているということです。 #TeamValue要素に直接変更ハンドラをアタッチしてみてください。

$('#TeamValue').on('change', function (event) { 
    $(this).removeClass("valid"); 
    $(this).addClass("input-validation-error"); 
    var myClass = $(this).attr('class'); 
    console.log(myClass); 
}); 

`` `

+0

これは当てはまりません。このポインタは#TeamValueを参照しています。彼はたぶんあなたが置いたものと一致するようにバインドを変更するべきですが、彼がIDを使っているだけで、それを利用するかもしれないからです。 – nurdyguy

関連する問題