2016-04-25 11 views
0

Ich kann einfach nicht herausfinden, ein Verhalten, ich bin kein JQuery-Guru und das gibt mir Kopfschmerzen. auf mein Dokument bereit ich habeJQuery-Klasse hinzugefügt bleibt nicht auf Änderung

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

In Konsole i die Klasse sehen also, änderte aber auf der Vorderseite ist es nicht. Warum passiert dies? Auch ich habe gesehen, dass, wenn ich den Inhalt lösche meine Eingangs-Validierungs-Fehler-Klasse gut erscheinen ... ich verstehe nur nicht. Kann mir jemand helfen?

Danke!

Eingang vor Klassenwechsel:

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

Konsolenprotokoll:

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

HTML dieses Elements nach seiner Klasse geändert wurde:

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

meinen Sie das, dass die CSS mit dieser Klasse zugeordnet ist, nicht Wirksam ist? Kannst du auch etwas vom HTML schreiben? – nurdyguy

+0

Ich habe weitere Details im ersten Beitrag hinzugefügt. Die Klasse ist irgendwie gelöscht, nachdem meine Funktion beendet ist und ich weiß nicht wie ... –

+0

Von dem, was Sie dort haben, sieht es richtig aus. Gibt es irgendwo Code, der stören könnte? – nurdyguy

Antwort

-1

Der $(this) Kontext Sie beziehen sich auf ist wahrscheinlich das #Table Element und nicht die #TeamValue Element, das Sie erwarten. Meine Annahme ist, dass die Klassenänderungen stattdessen auf diesem Element stattfinden. Versuchen Sie, die Änderung Handler direkt an das #TeamValue Elementbefestigungs:

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

`` `

+0

Das ist nicht wahr. Der This-Zeiger verweist auf #TeamValue. Allerdings sollte er die Bindung wahrscheinlich so ändern, dass sie zu dem passt, was Sie gesetzt haben, aber nur, weil er eine ID verwendet und dies auch ausnutzen könnte. – nurdyguy

Verwandte Themen