return unterdrücken
ricardillo
- javascript
0 Tobias Kloth0 ricardillo0 bastian0 David Tibbe
0 wahsaga
ich habe drei Eingabefelder und eine taste
das prog muss nur laufen können beim drucken der taste.
wenn ich irgend etwas in eine von die Eingabefelder schreibe und anschließend enter(am Tastatur)drucke, es soll nichts passieren.
wie kann ich das return für jede Eingabefelder unterdrücken
ich glaube das kann man nur mit javascript lösen.
kann jemand mir helfen
Hallo,
wenn ich irgend etwas in eine von die Eingabefelder schreibe und anschließend enter(am Tastatur)drucke, es soll nichts passieren.
warum? Der User ist idR gewöhnt, dass das Formular dann abgeschickt wird ...
wie kann ich das return für jede Eingabefelder unterdrücken
mit einem onsubmit="return false;" verhinderst du jegliches Abschicken des Formulars - um das Formular dann aber abschicken zu können, musst du den Wert entweder auf return true; setzen oder mit 'return funktionsname();' den Rückgabewert einer Funktion (die entscheidet ob abgeschickt wird oder nicht) auswerten.
Grüße aus Nürnberg
Tobias
es geht folgendes.
ich mache die eingabe mit ein scanner, und so bald er etwas einscannt wird automatisch ein ENTER "gedrückt". aber mein prog soll laufen nur wenn alle felder voll sind. denn die daten werden in ein datenbank gespeichert.
das speichern von daten auf den DB soll nur erfolgen, wenn alle felder voll sind. denn sonnst würden lucken in DB entstehen (das speichern von daten habe ich schon bereits gemacht).
deswegen muss ich für jede feld das RETURN unterdrücken.
nach dein rat habe ich:
<input type="text" size="17" name="Inhalt4" onsubmit="return false;" value="<?php @print $_REQUEST['Inhalt4']; ?>">
geschrieben, aber leider das lauf nicht.
<input type="text" size="17" name="Inhalt4" onsubmit="return false;" value="<?php @print $_REQUEST['Inhalt4']; ?>">
onsubmit="return false;" gehört in den <form ..-Tag und hat dann Gültigkeit für das ganze Formular.
danke ich habe gedacht das gehört zu den imput, vielen dank.
aber wenn ich onsubmit="return false;" ind das <form tag einfüge, sogar die tasten die ich im prog programmiert habe, laufen nicht.
das prog sieht so aus:
<table>
<form action="tes6.php" method="post" onsubmit="return false;">
<?php
if (isset($_REQUEST['loeschen1'])) {
unset($_REQUEST['Inhalt1']);}
?>
<?php
if (isset($_REQUEST['loeschen1'])) {
unset($_REQUEST['Inhalt2']);}
?>
<?php
if (isset($_REQUEST['loeschen1'])) {
unset($_REQUEST['Inhalt3']);}
?>
<?php
if (isset($_REQUEST['loeschen1'])) {
unset($_REQUEST['Inhalt8']);}
?>
<?php
if (isset($_REQUEST['loeschen1'])) {
unset($_REQUEST['Inhalt10']);}
?>
<td>
<input type="text" size="17" name="Inhalt1" value="<?php @print $_REQUEST['Inhalt1']; ?>">
</td>
<td>
<input type="text" size="17" name="Inhalt2" value="<?php @print $_REQUEST['Inhalt2']; ?>">
</td>
<td>
<input type="text" size="17" name="Inhalt3" value="<?php @print $_REQUEST['Inhalt3']; ?>">
</td>
<td>
<!-----------------------Aktuelle Datum in Tabelle--------------->
<input type="text" size="17" name="Inhalt8" value="<?php @print $_REQUEST['Inhalt8']; if(isset($_POST['taste1'])){
$Inhalt8=date("d.m.y H:i");
echo "$Inhalt8";}
?>"
</td>
<!-----------------------------Datum plus 24h Tabelle------------>
<td>
<input type="text" size="17" name="Inhalt10" value="<?php @print $_REQUEST['Inhalt10']; if(isset($_POST['taste1'])){
$Inhalt10=date("d.m.y H:i", time()+3600*24);
echo "$Inhalt10";}
?>"
</td>
<td>
<input type="submit" name="taste1" value="OK1">
</td>
<td align= "center">
<input type="submit" name="loeschen1" value="Löschen1"/>
</td>
</tr>
</table>
Hallo ricardillo,
das speichern von daten auf den DB soll nur erfolgen, wenn alle felder voll sind
Naja, aber die Vollständigkeit überprüfst du ja eh noch einmal serverseiog mit deinem Script, von daher kannst du doch auch auf die zusätzliche JS-Funktion verzichten. Schreibe dazu, dass alles ausgefüllt werden soll, wenn es dennoch jemand nicht macht, dann bekommt er eben eine entsprechende Meldung von deinem (PHP-)Script.
Grüße
David
jetzt die frage wäre, wie kann ich die fehler meldung unterdrücken.
damit es erschein das obwohl ich enter gedruck habe, nichts passiert ist
hi,
mit einem onsubmit="return false;" verhinderst du jegliches Abschicken des Formulars - um das Formular dann aber abschicken zu können, musst du den Wert entweder auf return true; setzen oder mit 'return funktionsname();' den Rückgabewert einer Funktion (die entscheidet ob abgeschickt wird oder nicht) auswerten.
eine funktion ist eigentlich gar nicht nötig - es genügt, den wert eines flags zurückzugeben, welches mit false initialisiert wurde, und bei onclick auf den button auf true umgeswitcht wird.
var letsgo = false;
<form ... onsubmit="return letsgo;">
<input ... onclick="letsgo=true;">
gruß,
wahsaga