php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.07.2011, 23:50  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Formular (Submit-Button) per Tastendruck absenden

Hallo,
ich versuche zu erreichen, dass ein Formular, bei dem lediglich einige hidden fields übergeben werden, optional durch das Drücken der Taste 0 anstatt durch das Drücken des Submit-Buttons, abgeschickt werden kann.

Mein, leider nicht funktionierender, Versuch:

PHP-Code:
<SCRIPT TYPE="text/javascript">
<!--
function 
submitenter(myfield,e)
{
var 
keycode;
if (
window.eventkeycode window.event.keyCode;
else if (
ekeycode e.which;
else return 
true;

if (
keycode == 48)
   {
   
myfield.form.submit();
   return 
false;
   }
else
   return 
true;
}
//-->
</SCRIPT>

<FORM ACTION="next.php">
<INPUT TYPE="hidden" NAME="etzteFrage" VALUE="12" />
<INPUT TYPE=SUBMIT VALUE="nächste Frage" onKeyPress="return submitenter(this,event)">
</FORM> 
Den Code habe ich von http://www.htmlcodetutorial.com/form...msupp_157.html, jedoch habe ich die dortigen Felder entfernt und onKeyPress="return submitenter(this,event)" direkt in den Button übernommen. Das scheint so aber nicht zu laufen.
Hat jemand eine Idee, wie ich das umsetzen kann?

Geändert von Shen (10.07.2011 um 23:55 Uhr). Grund: ergänzung
Shen ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.07.2011, 00:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

- Welchen tieferen Sinn soll das haben? Die Null ist jenseits aller üblicher Behaviours
- key-Events sind sinnvollerweise für Felder mit Tastatureingabe und Fokus gedacht. Ob das mit einem Button, der den Fokus hat, läuft, weiß ich grad nicht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.07.2011, 07:43  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
- Welchen tieferen Sinn soll das haben? Die Null ist jenseits aller üblicher Behaviours
- key-Events sind sinnvollerweise für Felder mit Tastatureingabe und Fokus gedacht. Ob das mit einem Button, der den Fokus hat, läuft, weiß ich grad nicht.
Null war nur ein Beispiel und könnte auch durch "Leertaste" ersetzt werden.
Shen ist offline   Mit Zitat antworten
Alt 11.07.2011, 14:54  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Du kannst nicht erwarten, dass auf einem Button, der nicht mal den Fokus hat, auf irgendwelche Tastatur-Events reagiert wird.
Wenn schon müsstest du den Event „weiter oben“ abfangen - bspw. direkt auf document oder body. Ob dass das ist was du willst - dass egal wo auf der Seite man sich befindet, der Tastendruck das Formular absendest - kannst nur du wissen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.07.2011, 14:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Null war nur ein Beispiel und könnte auch durch "Leertaste" ersetzt werden.
Wie immer reicht diese Info nicht, um einen ernsthaften Tipp geben zu können.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.07.2011, 16:50  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Du kannst nicht erwarten, dass auf einem Button, der nicht mal den Fokus hat, auf irgendwelche Tastatur-Events reagiert wird.
Wenn schon müsstest du den Event „weiter oben“ abfangen - bspw. direkt auf document oder body. Ob dass das ist was du willst - dass egal wo auf der Seite man sich befindet, der Tastendruck das Formular absendest - kannst nur du wissen.
Es ist egal, wo man sich auf der Seite befindet. Der Tipp mit dem Fokus hat schon mal geholfen. Folgendes funktioniert:

Code:
<FORM ACTION="next.php"> 
<INPUT TYPE="hidden" NAME="letzteFrage" VALUE="12" /> 
<INPUT TYPE=SUBMIT NAME="naechsteFrage" id="naechsteFrage" VALUE="nächste Frage" onKeyPress="return submitenter(this,event)"> 
</FORM> 

<script type="text/javascript">
 window.onload = function() {
 document.getElementById('naechsteFrage').focus();
 }
 </script>
Dieser Fokus ist jedoch keine optimale Lösung. Wenn ich dann irgendwo auf die Seite klicke, geht der Fokus verloren und das Absenden mit der Taste funktioniert nicht mehr.

Habt ihr noch einen eleganteren Vorschlag, wie der Formularbutton per Tastendruck angesprochen werden kann?
Shen ist offline   Mit Zitat antworten
Alt 11.07.2011, 16:52  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Wenn schon müsstest du den Event „weiter oben“ abfangen - bspw. direkt auf document oder body.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.07.2011, 17:15  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Folgendes bringt leider keinen besseren Effekt.
Code:
<body onload="document.getElementById('naechsteFrage').focus()">
Oder ist das nicht korrekt umgesetzt?

Neben der Ansprache eines Buttons möchte ich auf einer anderen Seite die Möglichkeit bieten, einen von vier Buttons per Tastatur (Ziffern 1-4) abzusenden. Dazu wäre die Fokussierung auf einen Button sowieso nicht sehr sinnvoll.
Beispiel:
Shen ist offline   Mit Zitat antworten
Alt 11.07.2011, 17:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein, ist es nicht.

Wie man globale Tastaturevents auswertet, sollte bei Slfhtml zu finden sein.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.07.2011, 17:56  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Nein, ist es nicht.

Wie man globale Tastaturevents auswertet, sollte bei Slfhtml zu finden sein.
Mühsam aber stetig ernährt sich das Eichhörnchen. Danke für die Denkhilfe!

Hier noch meine Umsetzung für zwei Formularfelder (Ansatz von hier übernommen)
PHP-Code:
<html>
    <
head>
        <
SCRIPT TYPE="text/javascript"
        <!-- 
        
document.getKeyCode = function(ev) {
        
ev ev || window.event;
        if ((
typeof ev.which == "undefined" || (typeof ev.which == "number" && ev.which == 0)) && typeof ev.keyCode  == "number")
            return 
ev.keyCode;
        else    
            return 
ev.which;
        }

        
document.onkeypress = function(e) {
            var 
keyCode document.getKeyCode(e);
            if (
keyCode == 49) { // Zifferntaste 1
                
document.forms["formular_1"].submit(); 
                return 
false
            } 
            else if (
keyCode == 50) { // Zifferntaste 2
                
document.forms["formular_2"].submit(); 
                return 
false
            } 
        else 
        return 
true;
        }
        
//--> 
        
</SCRIPT> 
    </head>
    <body>
    <form action="next_EINS.php" id='formular_1'> 
    <input type="submit" value="Formular 1"> 
    </form> 
 
    <form action="next_ZWEI.php" id='formular_2'> 
    <input type="submit" value="Formular 2"> 
    </form> 
    </body>
</html> 
Shen ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Reihemfolge von Submit Button bestimmen noop PHP Einsteiger 9 07.07.2011 15:38
Formular 1 wurde verändert, Formular 2 Submit muss dies erkennen smilla JavaScript, Ajax und mehr 2 28.03.2010 21:26
Formular nach SUBMIT nicht leeren?? Dome90 PHP Tipps 2010 11 29.01.2010 13:47
Submit Button mit Bild, per Click anderer Button the-rod JavaScript, Ajax und mehr 3 26.06.2009 17:52
[Erledigt] submit button mit bild problem Webby HTML, Usability und Barrierefreiheit 19 02.03.2009 23:54
[Erledigt] submit button wechseln wenn sid in DB vorhanden fulltilt PHP Tipps 2009 5 20.02.2009 16:32
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
Formular abschiken ohne Submit Button shocky HTML, Usability und Barrierefreiheit 10 02.11.2006 21:53
Formular nach absenden leeren Rotti HTML, Usability und Barrierefreiheit 5 27.05.2006 18:38
[Erledigt] formular aus anderem Frame absenden HTML, Usability und Barrierefreiheit 3 26.01.2006 15:37
mehrfaches absenden von Formular verhindern nieselfriem PHP Tipps 2005-2 1 24.08.2005 13:50
Variable aus Formular ohne submit Button übergeben PHP Tipps 2005-2 3 24.06.2005 17:08
formular übergeben ohne button me HTML, Usability und Barrierefreiheit 1 21.12.2004 14:56
Formular: Vorschau und Absenden in einem PHP Tipps 2004 3 04.11.2004 09:19
formular button linkt an interne Stelle PHP Tipps 2004 1 08.06.2004 10:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
submit per tastatur, tastenkombi auf button php, submit button über tastertur, php button event, javascript mit enter auf button drücken, javascript submit button drücken, javascript return taste, window.event.keycode submit, html form submit return-taste, keycode aprilia, php formular submit button true, javascript tastenanschlag enter, formular per taste abschicken php, formular submit mit enter, submnit php tastendruck, html formular durch tastenkombination absenden, html submit drücken javascript, focus submit button deutsch, tastaturkürzel button php, javascript tastendruck submit

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum