JS-Problem (Ganzzahlabfrage?)

Begonnen von dobra, August 11, 2007, 14:53:19

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

Mein Problem ist zwar kein ShopPilot-Problem, aber vielleicht kann mir trotzdem jemand helfen?

Ich habe das formrequired.js Script ein bißchen umgebaut und mit einer Abfrage, ob die Eingabe eine Zahl ist, ergänzt.
  ...........
var chkZ = 1;
     for (var i = 0; i < elems.length; i++) {
        var elemname = elems[i].name;
        if (elemname.match(/_required$/g)) {
            elemname = elemname.replace(/_required$/, "");
           
            var relems = document.getElementsByName(elemname);
            if (relems.length) {
                if (relems[0].value < "0" ||  relems[0].value > "9") {
                    requiredelems.push(relems[0]);
chkZ = -1;
                }
            }            
        }
    }   

    if (chkZ == -1) {
        for (var i = 0; i < requiredelems.length; i++) {
            requiredelems[i].style.backgroundColor = m_fieldcolor_highlight;
        }
        alert("Die Eingabe im markierten Feld \n ist keine gültige Zahl!");
        return false;
    }
............


Das funktioniert, aber ich komme einfach nicht dahinter, wie ich es machen kann, daß nur Ganzzahlen (also ohne Komma) ein chkZ = 1 bekommen.

Bei meinen - ohnehin sehr komplizierten - Berechnungen (verschachtelt, kombienier, JS und/oder ssp) wäre es wichtig, daß keine Kommazahlen eingegeben werden können, sonst wird das Ergebnis zwar "richtig" berechnet, aber es kommen u.U. Zahlen mit unendlichen Kommastellen heraus.

Beispiel:  so soll es NICHT sein -  sondern SO

Wenn ich einfach ein "int" für die Zahlenausgabe schreibe, wird es zwar richtig angezeigt, aber falsch berechnet.
Damit ALLES richtig funktioniert, darf der Kunde keine Kommazahl eingeben können.

Bitte HILFE........

(falls mein Geschreibsel unverständlich war -> Demo http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show1200004850 <- bitte eine Größe wählen und dann mal irgendwelche Kommazahlen im unteren Teil - mit "." nicht "," - eingeben und gucken, was passiert....)
mfG
dobra

admin

Hallo Dorbra,

auf Anhieb weiss ich keine Lösung, vielleicht mal in einem Javascript-Forum fragen.

Gruss hop

dobra

#2
Hallo hop;

Zitatvielleicht mal in einem Javascript-Forum fragen
hatte ich schon gemacht, aber keine brauchbare Antwort erhalten.

Habe jetzt selber nochmal herumgetüftelt und eine andere Lösung gefunden:
Ich frage nicht ab, ob eingegebene Zahl eine Ganzzahl ist und wenn nicht Alertmeldung -
sondern viel einfacher:

Eine Kommazahl wird mit  onKeyUp="checkinput()"  automatisch gleich bei der Eingabe gerundet 
(manchmal denke ich viel zu kompliziert.... :-\ wenn's doch einfach auch geht ;D)

function checkinput() {
    var elems = document.getElementsByTagName("input");
    var requiredelems = new Array();
    for (var i = 0; i < elems.length; i++) {
        var elemname = elems[i].name;
           
            var relems = document.getElementsByName(elemname);
            if (relems.length) {
                  var WertA = Math.round(relems[0].value);
                  var WertB = relems[0].value;
if (WertA != WertB)
relems[0].value = WertA;
}
        }
    }


Das hat auch noch den Vorteil, daß ich das eine Feld, daß ein zulässiges ".5" braucht, dabei auslassen kann.
mfG
dobra