Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

nur Zahlen ins Input-feld?





Frage

Hallo, wie kann ich mit JavaScript dafür sorgen, dass in ein Formularfeld ausschließlich Zahlen bzw auch Dezimalzahlen mit 2 nachkommastellen eingetragen werden können? schonmal vielen Dank, svensen

Antwort 1 von benia_2

Das geht in etwa so: (Beispiel analog)
(Hier wird auf eine gültige RGB Farbe geprüft)




document.onkeydown = handlekeydown // kein ()!!

function handlekeydown() {
  if (!isValidColor(document.forms['colorpicker'].red.value)) {
    window.event.returnValue = false;
  }
}

// check for valid form field input: (integer from 0 - 255)
function isValidColor(curVal) {
  
  var inputChar = event.keyCode;
  var allValid = false;
  
  if ((inputChar >= 48) && (inputChar <= 57)) {
    allValid = true;
  }
  // not more then three digits:
  if ( curVal.length >=3 ) {
    allValid = false;
  }
  // not more than 255:
  
  var newNumInt = curVal + Number(String.fromCharCode( inputChar ));
  if (newNumInt > 255) {
    allValid = false;
  }
  
  return allValid;
}



Antwort 2 von svensen

danke, ich damit kann ich auf jeden Fall was anfangen!

Antwort 3 von svensen

Sollte das hier nicht den Keycode zurückgeben:

function test() {
alert(window.event.keyCode);
return
}

.
.
.

<input type='text' onKeyup='test()' name='test'></input>

Was habe ich falsch gemacht?

Antwort 4 von Dr.Ma-Busen

Nabend!

Versuch es mal hier mit:

Das Fettgedruckte mit in das Textfeld welches überprüft werden soll.
<input type="text" name="" value="" onkeyup="check(this)">
Und diese kleine Funktion irgendwo zwischen <head> und </head> platzieren
function check(id){
	id.value = id.value.replace(/[^0-9\.,]/,"");
}


MfG
Dr. Ma-Busen

Antwort 5 von svensen

Danke Doc, genau was ich gesucht habe!

Antwort 6 von svensen

kann hier jemand einen Fehler sehen:


<script language="text/JavaScript">
<!--
function check(menge){
  menge.value = menge.value.replace(/[^0-9]/,"");
  rechne();
  }
function rechne() {
  var help  = document.warenkorb.menge.value;
  var preis = <? echo $result[preis]; ?>;
  document.warenkorb.gpreis.value = $preis*document.warenkorb.menge.value;
  return true;
}
//-->


Bei folgendem Aufruf bekomme ich eine Fehlermeldung "Objekt erwartet" (Zeichen 1):

<input onKeyup='check(this)' type='text' name='menge' value='1' size='15' maxlength='3'></input>


Bin fast am Verzweifeln, finde es einfach nicht.

Vielen Dank für jede Hilfe schonmal im Voraus!
svensen

Antwort 7 von ThomasOOP

muss man das <!-- nicht noch mit // auskomentieren ?

Antwort 8 von svensen

nein, mit "<!--" wird angefangen und mit "//-->" beendet.

Antwort 9 von Dr.Ma-Busen

Mahlzeit!

<script language="text/JavaScript">
das müsste
<script type="text/JavaScript">
lauten.

Dann ist da noch ein Fehler und zwar hast du eine Variable $preis die hast du aber nirgendwo deklariert

MfG
Dr. Ma-Busen

Antwort 10 von svensen

... und schon funktioniert es wieder!

Danke Doc, nun schon zum 2.mal! Aber kannst du mir auch sagen wo der Unterschied zwischen
<script type="text/JavaScript">

und
<script language="JavaScript">

liegt?
Nur des Verständnisses wegen.

Danke!

Antwort 11 von Dr.Ma-Busen

ich werde es mal versuchen *g*

<script language="JavaScript">
gehört zu den missbilligten Attributen und wird auch nicht von allen Browsern korrekt interpretiert. Wobei aber das Attribut bei dir auch gehen müsste. Du hattest vorher language="text/JavaScript" dort stehen und diese Sprache kennt der Browser nicht, der kennt nur language="JavaScript" bzw. language="JavaScriptX.X" (X.X = Version)

Die angabe mit den Mime-Type (type="text/javascript") ist seit HTML4.0 Pflicht, wenn du HTML4.0 Validen Quelltext haben möchtest, wovon jetzt ich mal ausgehe ;).

Hoffe mal du hast jetzt verstanden was ich gesagt habe, ansonsten kannst du dir den abschnitt in selfHTML nach mal durchlesen.

MfG

Antwort 12 von svensen

alles klar, das hab ich gecheckt.

hab nochmals vielen Dank!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: