formular input nur zahlen

chrisi01

Romy lieb haben
ID: 101113
L
26 November 2008
2.854
238
hi

ich gebe ja zu verwende js nur sehr ungern. Aber wenn ich es mal brauch häng ich ständig im google und komm nicht weiter so auch jetzt. Finde zwar einiges aber nichts geht.

und zwar hab ich in einem Formular ein Inputfeld und möchte dort als Eingabe und ganze positive Zahlen erlauben (und ja ich prüfe natürlich danach nochmal mit php ob es echt so ist aber damit es für die User leichter ist)

Wer kann mir mal bitte schnell helfen google solange mal weiter auch wenn ich da kaum noch Hoffnung hab was zu finden.

mfg

Chris
 
Mein Ansatz war da glaubich immer Javascript und onkeydown. Soweit ich weiß hat HTML da keine Möglichkeit für. Und das Javascript hab ich grad nicht im Kopf wie das am besten geht, aber mit dem richtigen Ereignis (einfach nachschlagen) kriegst du den Keycode, und kannst den dann vermutlich sogar als char mit >=1 // <=0 (o.ä.) vergleichen..

Hoffe das ist verständlich, weiß nicht wie viel Ahnung du jetzt genau hast ;).
Zur Not sollte es bei halbwewgs intelligenten Nutzern aber auch ein Satz ("Nur Ziffern, du Depp") und deine PHP überprüfung tun..
 
Hi,

Versuch es mal so:
Sobald irgendwas in das Input-Feld eingetragen wird, wird eine JS Funktion aufgerufen (Listener?). In der Funktion prüfst du mittels Regex ob sich nur Zahlen im Input Feld befinden.
 
hi

hm eigentlich hab ich ja gar keine Ahnung von JS und google mir da die Codeschnippsel die ich brauch immer zusammen. Aber vielleicht tue ich mir es doch mal an und schau mir das etwas genauer an. Kommt drauf an wie dringend ich es haben will :mrgreen: Danke euch schon mal für die Tipps.

mfg

chris
 
Wenn dem so ist, dann nimm das hier als Beispiel. Da ist eine Alterseingabe drinne, deren Eingabewerte überprüft werden.

Aber ich würd dir empfehlen dir wenigens ein klein wenig JS anzugucken. Schaden tut das nicht, und wenn du PHP kannst kannst du auch Javascript Basics lernen.
 
Hi,

erster Ansatz:

HTML:
Code:
<form name="Form" onSubmit="return checkData()">
<input name="Integer" />
</form>

JavaScript:
Code:
function checkData(){
if(!isInt(document.Form.Integer.value))
return false;
else
return true;
}

Bei dem return bin ich mir nicht ganz sicher, ist jetzt auch nur einfach so hingeschrieben.

Grüße,
Sebastian
 
hi

danke euch

@Astrodan

wenn ich das richtig verstehe wird da mit js nur gecheckt ob ein anderes Zeichen als eine Zahl drinnen ist aber Eingaben sind trotzdem möglich.

@PlaciD

Wenn ich das richtig verstehe ich das bei dir genau das gleiche oder?

Ich will schon die Möglichkeit überhaupt eine Zahl einzugeben unterbinden

mfg

chris
 
Ich will schon die Möglichkeit überhaupt eine Zahl einzugeben unterbinden
Ich dachte, Du wolltest nur Zahlen?

HTML:
<input type="text" onkeyup="this.value=this.value.replace(/\D/, '');"/>
Quick and dirty, aber funktioniert. Evtl kann man über DOM Level 2-Eventhandler noch verhindern, dass die Eingabe kurz im Input aufblinkt, aber das hab ich grad so alles nicht im Kopf, wie's aussehen müsste.
 
hi

ähm ja wollte auch nur zahlen habe mich oben vertippt. deinen tipp werde ich mal probieren danke

edit: klappt ganz gut und reicht mir auch so danke nochmals.

Wenn ich nochmal stören darf geht folgendes:
2 Felder von einem Formular auslesen und addieren und das Ergebnis direkt auf der Webseite anzeigen (nicht in einen Formular oder popup oder so sondern direkt auf der Seite als Text.) und zwar ohne das Formular abzusenden. Mir reicht hier ein Ja oder Nein müsst jetzt nicht den ganzen Code vortippen (außer ihr habt lust dann macht es :D) Mir geht es vor allem darum ob ich einfach so einen text auf der Webseite anzeigen lassen kann ohne sie neu zu laden und ob ich ohne Absenden ein Formularwert in eine js Variable bekomme.

mfg

Chris
 
Zuletzt bearbeitet:
Hi,

HTML:
Code:
<div id="spacer"></div>

Javscript:
Code:
var zahl1 = document.Formular.zahl1.value;
var zahl2 = document.Formular.zahl2.value;
document.getElementById('spacer').innerHTML = zahl1 + zahl2;

Das ganze in ne Funktion schreiben, mir onchange überprüfen, ob die Felder des Formulars geändert werden.

Grüße,
Sebastian
 
hi

das klingt klasse werde damit mal rumspielen und es damit bestimmt hinbekommen :)

vielen dank

edit:

hab nun folgenden Code draus gebaut der aber nicht klappt vllt. sieht wer gleich den Fehler meiner Meihnung nach sieht es ganz gut aus:

Code:
<form name="abs" action="userbanner.php?page=buchen_fertig" method="post">
<input type="text" size="30" name="menge" onkeyup="this.value=this.value.replace(/\D/, '' );">
<SCRIPT language="text/JavaScript">
	var zahl1 = document.abs.menge.value;
  document.getElementById('spacer').innerHTML = zahl1;
  </SCRIPT>
<div id="spacer"></div>
<input type="submit" value="Buchen">
</form>

Es sind noch paar Eingabefelder dazwischen und Tabellen außen herum aber die dürften ja nicht die Ursache sein.

mfg

Chris
 
Zuletzt bearbeitet:
Hi,

wie gesagt, du musst das ganze noch in ne Funktion packen:

Code:
<SCRIPT language="text/JavaScript">
   function updateSpacer(){
      var zahl1 = document.abs.menge.value;
      document.getElementById('spacer').innerHTML = zahl1;
   }
</SCRIPT>

<form name="abs" action="userbanner.php?page=buchen_fertig" method="post">
<input type="text" size="30" name="menge" onkeyup="this.value=this.value.replace(/\D/, '' ); updateSpacer();">
<div id="spacer"></div>
<input type="submit" value="Buchen">
</form>
 
hi

hab das mit der Function gerade gelesen als du die Antwort geschrieben hast habs beim ersten mal überlesen sry.

So die jetztige Version von dir geht immer noch nicht aber ich hab nochmal deinen vorherigen Beitrag angeguckt da stand etwas von onchange also mal eben:
Code:
<input type="text" size="30" name="menge" onkeyup="this.value=this.value.replace(/\D/, '' );" onchange="updateSpacer();">

nur dummerweise geht das auch nicht. Hab mal in die funktion ein alert(zahl1); eingefügt um zu sehen ob er überhaupt in die function springt aber es passiert gar nix.
Trau mich ja schon gar nicht mehr fragen aber will das endlich hinbekommen ist dann echt das letzte was ich brauche versprochen :mrgreen: Es müsste nur gehen.

mfg

Chris

edit: ich bin zu gut es muss

<script type="text/javascript">
anstatt
<SCRIPT language="text/JavaScript">

heißen dann geht das ganze auch VIELEN DANK nochmal für die hilfe
 
Zuletzt bearbeitet: