| 

.NET C# Java Javascript Exception

2
Hallo zusammen,

ich verstehe die JavaScript- Welt nicht mehr!!
Warum gibt das nachfolgende Skript eine Stringlänge von 13 Zeichen aus???

<script>
$(document).ready(function ()
{
//Uhrzeit holen
var tmpDate = new Date();
var uhrzeitSystem = tmpDate.toLocaleTimeString("de-de");

$("#txtEingabeDatum").val(uhrzeitSystem); //Schreibt: ‎08‎:‎52‎:‎40

alert($("#txtEingabeDatum").val().length); //WARUM 13 ???
});
</script>



Das "genialste" ist aber: Gebe ich die Uhrzeit händisch in die TextBox ein, wird die Stringlänge korrekt angezeigt.

Ich benutze den IE 11
24.10.2014
Maik_1978 674 1 8
Welchen Browser benutzt du? Bei mir geht es im FF)

DEMO: http://jsfiddle.net/1bn8wc2w/
Floyd 24.10.2014
Ich benutze den IE 11
Maik_1978 24.10.2014
Wenn du http://jsfiddle.net/1bn8wc2w/ im deinem IE 11 aufrufst, kommt dann auch 11 raus?
Floyd 24.10.2014
Bei mir kommt im IE 10 (exakt 10.0.9200.17054) auch 8 raus.
Floyd 24.10.2014
Wenn ich das Script von Floyd im IE 11 aufrufe kommt korrekt 8 heraus... Sorry... dann muss irgendetwas anderes auf meiner Seite störend wirken. Momentan habe ich keinen Schimmer was einen solchen Effekt erziehlen könnte aber ich werde es herausfinden.
Maik_1978 24.10.2014
Ich bin immer ratloser... das Skript bei mir lokal gibt immer noch 13 zurück, es enthält nun nur noch den HTML-Rumpf, kopiere ich das Skript auf meinen Server gibt es ordnungsgemäß 8 zurück. Was ist da los????
Maik_1978 24.10.2014
Es scheint ein Bug im IE 11 zu sein. Firefox etc. zeigt auch lokal die Daten korrekt an.
Maik_1978 24.10.2014
Welchen IE11 benutzt Du denn? Die Desktop-, oder die App-Variante. Bei der App-Variante habe ich auch schon mal Probleme mit gehabt. Beim Checkout eine es Online-Shops wurde mir nur mit dieser Version eine weiße Seite gezeigt ...
Versuch dann mal die App - Version zu debuggen :(
Xantiva 29.10.2014
1 Antwort
0
Der IE 11 fügt, warum auch immer, unsichtbare Zeichen in das Textfeld ein.
Allgemein lassen sich solche Fehler mit der Split-Methode herausfinden:

var time = new Date().toLocaleTimeString("de");
$('#txtEingabeDatum').val(time);
console.log($('#txtEingabeDatum').val().split(''));
console.log($('#txtEingabeDatum').val().length);


Die Ausgabe lautet um 15:44:20 im IE 11 wie folgt:

‎‎,1,5,‎,:,‎,4,4,‎,:,‎,2,0
13


Siehe auch ‎http://jsfiddle.net/e7c8gc62/10/
07.11.2014

Stelle deine Javascript-Frage jetzt!