Länderspezifische Zahleneingabe erstellen
itzimmer
- javascript
Hallo,
ich habe folgendes Problem, vielleicht weiß ja jemand Rat ?
Ich will eine Länderspezifische Zahleneingabe gestallten.
In einem normalen HTML-Formular wird eine Zahl eingegeben.
Die Zahl 1000 muss in den USA als 1,000.0 einzugeben sein und bei uns als 1.000,0.
ich such eine Funktion die mir die Länder Einstellungen ausliest und ich darauf hin die Zahl weiter bearbeiten kann.
Des weiteren suche ich eine Funktion die mir die Zahl als eine in der Zahlenkonvention erlaubten Art und weiße durchsucht und gegebenenfalls einen Fehler ausgibt.
Dieses sollte am besten per JavaScript realisiert werden, ASP oder VBScript würden mit größerem Aufwand auch in die Anwendung einzubauen sein.
Hat jemand einen Rat ???
LG
itzimmer
Das einizg verlässliche ist da wohl eine Auswahlbox, die der Benutzer selbst bedient und sein herkunftsland angibt...
wie willst du das herausfinden können? Du kannst etwas über Browser und OS herausbekommen, aber Taiwanische windows versionen laufen auch auf deutschen rechnener, ist also nicht wirklich sichergestellt, das dass alles so stimmt.
Auch die IP-Adrsesse bzw. der netzwerkname des zugreifenden hilft nicht weiter... .net .org .com ... kann alles auf jedem punkt der welt sein
um noch ein wenig weiter zu spinnen: ein TraceRoute bringt dich sicher auch nicht ans ziel, da du ggf. an einem japanischen proxy endest, wenn ein australier dein system lädt..
mh,
Hallo,
ich habe folgendes Problem, vielleicht weiß ja jemand Rat ?
Ich will eine Länderspezifische Zahleneingabe gestallten.
In einem normalen HTML-Formular wird eine Zahl eingegeben.
Die Zahl 1000 muss in den USA als 1,000.0 einzugeben sein und bei uns als 1.000,0.ich such eine Funktion die mir die Länder Einstellungen ausliest und ich darauf hin die Zahl weiter bearbeiten kann.
Des weiteren suche ich eine Funktion die mir die Zahl als eine in der Zahlenkonvention erlaubten Art und weiße durchsucht und gegebenenfalls einen Fehler ausgibt.
Dieses sollte am besten per JavaScript realisiert werden, ASP oder VBScript würden mit größerem Aufwand auch in die Anwendung einzubauen sein.
Hat jemand einen Rat ???
LG
itzimmer
hi,
Auch die IP-Adrsesse bzw. der netzwerkname des zugreifenden hilft nicht weiter... .net .org .com ... kann alles auf jedem punkt der welt sein
und noch besser: ein deutscher kann sich ggf. sogar in amerika aufhalten (*), und von dort aus einen browser bedienen ...
gruß,
wahsaga
(*) obwohl sie einem dies durch ihre einreise-gestapo ja mittlerweile so effektiv wie möglich zu verleiden versuchen.
hi,
huhu
Auch die IP-Adrsesse bzw. der netzwerkname des zugreifenden hilft nicht weiter... .net .org .com ... kann alles auf jedem punkt der welt sein
und noch besser: ein deutscher kann sich ggf. sogar in amerika aufhalten (*), und von dort aus einen browser bedienen ...
Ja klar... aber sag mal ehrlich... hab ich irgendwie die Frage nicht verstanden, oder was?
gruß,
wahsaga
gruß, Hilker
(*) obwohl sie einem dies durch ihre einreise-gestapo ja mittlerweile so effektiv wie möglich zu verleiden versuchen.
hi,
Ja klar... aber sag mal ehrlich... hab ich irgendwie die Frage nicht verstanden, oder was?
nein, ich wollte nur dein argument noch um eine weitere facette ergänzen ;-)
gruß,
wahsaga
Hallo nochmal,
also erst einmal Danke für die Antworten.
Nochmal zum Problem, ich muss nur wissen wie der User seine Ländereinstellung vorgenommen hat, wie er seinen Decimal Character eingestellt hat.
Wo der sitzt ist egal, ob der nen Japanisches Windows hat oder eines aus den USA ist auch egal.
Wichtig ist nur mit welcher Sprache oder noch besser wie er seinen Decimal Character gewählt hat.
Also die Information aus den Systemeinstellungen/Keyboard muss ich haben !!!
LG
itzimmer
Hi,
Wichtig ist nur mit welcher Sprache oder noch besser wie er seinen Decimal Character gewählt hat.
Also die Information aus den Systemeinstellungen/Keyboard muss ich haben !!!
Und was nützen Dir die Systemeinstellungen?
Ein User kann vollkommen unabhängig von den Systemeinstellungen die eine oder die andere Schreibweise gewählt haben.
Ich kann 1.000,000 oder 1,000.000 eingeben.
Woran erkennst Du jetzt, welches Zeichen ICH als Dezimaltrenner gewählt hab? Hab ich bei beiden Zahlen dasselbe Zeichen benutzt?
Wenn ich eine Mail an einen Deutschen schreibe, nutze ich in einer Zahl das , als Dezimaltrenner.
Schreib ich aber eine Mail an einen Engländer, nutze ich in einer Zahl den . als Dezimaltrenner. Meine Systemeinstellungen ändere ich für diesen Zweck aber nicht.
Warum sollte ein User sich also nach den Systemeinstellungen richten?
cu,
Andreas
Es soll ausschließlich die Systemeinstellung interpretiert werden.
Die Eingabe richtet sich an Leute die sehr viel in Excel arbeiten und dann bestimmt nicht die Konvention ändern weil die mich ärgern wollen.
Wenn Die Konvention nicht mit der bevorzugten Einstellung übereinstimmt haben die Pech gehabt, habt Ihr auch wenn Ihr z.B. in einem Tabellenkalkuationsprogramm anders arbeitet als Ihr Euerm System mitgeteilt habt.
LG
itzimmer
Hallo itzimmer,
ist das 1000er Zeichen wichtig? Wenn nicht, prüfe doch einfach, ob die Eingabe eine Zahl ist, und wenn nicht, ersetze das "," durch einen "." und prüfe evtl. noch einmal, ob dann eine Zahl vorliegt. Wenn immer noch nicht, alert mit Info. Ich behandle numerische Eingaben so (das Formular hat den Namen "frm"):
function get_num(id) {
var num=document.frm[id].value;
if (isNaN(num)) { num=num.replace(/,/g,"."); document.frm[id].value=num; }
if (isNaN(num)) { num=0.0; alert("Hinweistext ..."); }
return parseFloat(num);
}
Gruß, Jürgen
Hi,
ich such eine Funktion die mir die Länder Einstellungen ausliest und ich darauf hin die Zahl weiter bearbeiten kann.
So eine Funktion würde ich mir bei ebay und einigen Onlinebanken auch wünschen.
Da regt es mich jedesmal wieder auf, dass ich anstatt des international üblichen Dezimalpunktes, der auf allen meinen Rechnern als Dezimaltrennzeichen eingestellt ist, ein Komma eingeben muss. Grmpf.
Hat jemand einen Rat ???
Nicht wirklich. Wenn du alle Varianten zulassen willst, kannst du nachher nur raten, wie die Eingabe wirklich gemeint war. :(
So long,
Martin