Zur Navigation

Eingabekontrolle von "EinT"

1 Peter

Hallo Forum,

habe mal eine Frage:

wie muß ich eine Function erweitern, damit nur bei Eingabe eines Wertes im Feld "EinT" der Wert auch überprüft wird?
Vorhandende Felder:
"EinB" Breite der Garnitur
"EinT" Länge der Teilung abzüglich 270 cm
Wenn der Kunde nichts eintagen möchte, wird mittig geteilt.
function check () {
var T = doc.EinT.value;
var B = doc.EinB.value;
var R = B-T;
if (R < 0 || R > 2701)
    { alert("Die Teilnung ist nicht kleiner 270 mm!\n Bitte neu eingeben!");
      doc.EinH.focus();
      doc.EinH.value = "";
      return(false);       
}
else if(B < 400 || B > 4000)
    {alert("Die Breite liegt nicht zwischen 400 und 4000 mm!\n Bitte neu eingeben!");
      doc.EinB.focus();
      doc.EinB.value = "";
      return(false);
}
return true;
}

Link zur Seite:
http://www.windeko.de/php/flag02.php

Für eure Unterstüzung danke ich schon im voraus
Viele Grüße
Peter

04.05.2008 15:25

2 Jörg Kruse

wie muß ich eine Function erweitern, damit nur bei Eingabe eines Wertes im Feld "EinT" der Wert auch überprüft wird?

Die Funktion würde ich so lassen - aber den EventHandler kannst du hierzu ändern - in diesem Fall nimmst du onchange statt onblur

<p>Teilung ab 270cm bei : <input type="text" size="3" name="EinT" tabindex="3" onchange="check()" value=''/> in mm </p>

04.05.2008 20:25

3 Peter

Hallo Jörg,

einfach und gut, Danke Jörg.

04.05.2008 21:40

4 Peter

Hallo Jörg,

sorry, ist leider doch nicht so gut, jetzt wir die Breite (EinB) nicht mehr geprüft, wenn das Feld "EinT" nicht ausgefüllt wird.

Edit Nachtrag:
ich dachte man kann es in etwa so lösen:
function checkBreite(){
var B = doc.EinB.value;
 if(B < 400 || B > 4000)
    {alert("Die Breite liegt nicht zwischen 400 und 4000 mm!\n Bitte neu eingeben!");
      doc.EinB.focus();
      doc.EinB.value = "";
      return(false);
}
return true;
}
function checkTeil(){
var T = doc.EinT.value;
var B = doc.EinB.value;
var R = B-T;
if (R < 0 || R > 2701)
    { alert("Die Teilnung ist nicht kleiner 270 mm!\n Bitte neu eingeben!");
      doc.EinT.focus();
      doc.EinT.value = "";
      return(false);       
}
return true;
}

function check () {
var T = doc.EinT.value;
var B = doc.EinB.value;
var R = B-T;
switch (T){
case "":
      checkBreite();
    break;
case (R < 0 || R > 2701):
     checkTeil(); 
    break;
       
}
return true;
}

Leider geht es auch nicht ;-)

05.05.2008 19:58 | geändert: 05.05.2008 21:30

5 Jörg Kruse

Wenn du zwei Felder überprüfen möchtest, dann kannst du zwei entsprechende Funktionen erstellen, die jeweils bei onchange des betreffenden Eingabefeldes aufgerufen wird?

05.05.2008 22:10

6 Peter

Hab ich jetzt getan, leider wird jetzt nicht bei "EinT" mit der function checkTeil wieder zurück in Feld gesprungen.
function checkTeil(){
var T = doc.EinT.value;
var B = doc.EinB.value;
var R = B-T;
if (R < 0 || R > 2701)
    { alert("Die Teilnung ist nicht kleiner 2700 mm!\n Bitte neu eingeben!");
      doc.EinT.focus();
      doc.EinT.value = "";
      return(false);       
}
return true;
}

Bei der Function checkBreite() funktioniert es aber.

05.05.2008 23:02 | geändert: 05.05.2008 23:23

7 Jörg Kruse

leider wird jetzt nicht bei "EinT" mit der function checkTeil wieder zurück in Feld gesprungen.

Das kannst du gegebenfalls mit der Funktion focus() korrigieren

06.05.2008 18:15

8 Peter

Das kannst du gegebenfalls mit der Funktion focus() korrigieren

Ich dachte, ich hätte die function focus() richtig eingesetzt.

Habe die Felder "Teil" und "EinT" in der Reihenfolge getauscht, weil ich annahm, das der "Grundpreis berechnen" Button vielleicht den Ablauf stört, leider ist es nicht der Fall.
doc.EinT.focus();
ist doch richtig ?

Edit:
Habe es wie folgt gelöst:
function checkTeil(){
var T = doc.EinT.value;
var B = doc.EinB.value;
var R = B-T;

if (T == "")
{
return true;
}
else if (R < 0 || R > 2701)
    { alert("Die Teilnung ist nicht kleiner 2700 mm!\n Bitte neu eingeben!");
      doc.EinT.focus();
      doc.EinT.value = "";
      return(false);       
}
return true;
}

Ausgeführt nach dem verlassen des Feldes "teil".
<td colspan="2" nowrap>
						<div align="right">
							&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Teilung der Garnitur ab 2700 [mm] L&auml;nge bei 
<input type="text" size="3" name="EinT" tabindex="3"  value='<?php printf("%s", htmlentities($EinT)); ?>'/> [mm] oder mittig wenn Sie <u>nichts</u> angeben  bei 
<input type="text" size="3" name="teil" readonly tabindex="4"  onblur="checkTeil()" value='<?php printf("%s", htmlentities($teil)); ?>'/>[mm]</div>
					</td>
				</tr>
Jetzt funktioniert es, hoffe ich doch ;-)

Bitte mal testen, Danke

06.05.2008 23:24 | geändert: 06.05.2008 23:52

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]