Hallo,
ich habe ein mehr oder weniger kleines Script geschrieben was mit JS bei der Eingabe prüft ob ein Datum herauskommen kann. Jetzt zu meinem Problem: Sobald ich im IE Backspace drücke nutzt dieser history.back wobei einfach nur das letzte Zeichen gelöscht werden soll -.-
Alle anderen Browser machen es Richtig!
Bitte um Hilfe
<html>
<head>
<title>Test</title>
<script type="text/javascript">
var focus_eingabe_datum = false;
function aus()
{
focus_eingabe_datum = false;
}
function an()
{
focus_eingabe_datum = true;
}
function TasteGedrueckt (Ereignis) {
if(focus_eingabe_datum != true)
{
//do nothing
}
else
{
var datum = document.getElementById("eingabe2").value;
if (!Ereignis)
Ereignis = window.event;
if (Ereignis.which) {
Tastencode = Ereignis.which;
} else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}
if(Tastencode < 48 || Tastencode > 59)
{
if(Tastencode == 8){ //löschen von einem Zeichen
letztetaste = 8;
AusgabeDatum = AusgabeDatum.substring(0,AusgabeDatum.length-1);
datum = AusgabeDatum;
document.getElementById("eingabe2").value = AusgabeDatum;
}
}
else
{
datum += String.fromCharCode(Tastencode);
if(datum.length == 1 && Tastencode < 52 ){
AusgabeDatum = datum;
document.getElementById("eingabe2").value += AusgabeDatum;
erstetaste = Tastencode;
}else if (datum.length == 1){
datum = AusgabeDatum;
}
if(datum.length == 2 && erstetaste == 51 && Tastencode < 50){
AusgabeDatum = datum+'.';
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 2 && erstetaste == 48 && Tastencode == 48){
}else if(datum.length == 2 && erstetaste < 51 && Tastencode > 47){
AusgabeDatum = datum+'.';
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 2){
datum = AusgabeDatum;
}
if(datum.length == 3 && Tastencode < 50 && letztetaste == 8){ //Punkt nach löschen und neueingabe
datum=datum.substring(0,datum.length-1);
AusgabeDatum = datum+'.'+String.fromCharCode(Tastencode);
datum = AusgabeDatum;
document.getElementById("eingabe2").value = AusgabeDatum;
}
if(datum.length == 4 && Tastencode < 50){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
letzteTaste = Tastencode;
}else if(datum.length == 4){
datum = AusgabeDatum;
}
if(datum.length == 5 && Tastencode < 58 && letzteTaste == 48 && Tastencode != 48){
AusgabeDatum = datum+'.';
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 5 && letzteTaste == 49 && Tastencode < 51){
AusgabeDatum = datum+'.';
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 5 ){
datum = AusgabeDatum;
}
if(datum.length == 6 && Tastencode < 51 && Tastencode > 48 && letztetaste == 8){ //Punkt nach löschen und neueingabe
datum=datum.substring(0,datum.length-1);
AusgabeDatum = datum+'.'+String.fromCharCode(Tastencode);
datum = AusgabeDatum;
document.getElementById("eingabe2").value = AusgabeDatum;
}
if(datum.length == 7 && Tastencode < 51 && Tastencode > 48){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
letzteTaste = Tastencode;
}else if(datum.length == 7){
datum = AusgabeDatum;
}
if(datum.length == 8 && Tastencode > 56 && letzteTaste == 49){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 8 && Tastencode > 47 && letzteTaste == 50){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 8){
datum = AusgabeDatum;
}
if(datum.length == 9 && Tastencode > 47 && letzteTaste == 50){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 9 && Tastencode > 52 && letzteTaste == 49){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
}else if(datum.length == 9){
datum = AusgabeDatum;
}
if(datum.length == 10){
AusgabeDatum = datum;
document.getElementById("eingabe2").value = AusgabeDatum;
}
};
}
}
document.onkeypress = TasteGedrueckt;
</script>
</head>
<body>
<p><input type="text" id="eingabe2" name="eingabe2" readonly="readonly" size="50" onfocus="an();" onblur="aus();"></p>
</body>
</html>