Formular und Tab-Taste

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formular und Tab-Taste

    Ich möchte in einem Form, wenn ich ein Feld mit der Tab-Taste verlasse, ein Ajax-Request ausführen und in das nächste Feld springen. Wenn ich dies aber durchführe wird der Ajax-Request durchgeführt, aber der Cursor springt nicht in das nächste Feld im Form, sondern der Focus geht ganz nach oben.

    Hier mein Code. Im "haupt.php" befindet sich der Ajax-code und die id, wo das Formular eingebunden wird.

    Im sendRequest_w habe ich mal versucht ein focus() zu verwenden, das aber nicht funktioniert.

    Hoffe da kann mir jemand weiterhelfen, wie ich ich trotz ajax in ein nächstes Formularfeld springen kann.
    Vielen Dank für jede Antwort.
    Hubert


    ------------ code ----------------------

    >>>> haupt.php <<<<

    Quellcode

    1. <script>
    2. //... Ajax - Script....
    3. function sendRequestneu(file, queryString, div) {
    4. if(xmlHttp) {
    5. /* Request Daten in die Warteschlange setzen, falls der vorherige noch nicht abgeschlossen ist */
    6. if(xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
    7. queueLength = queue.length;
    8. queue[queueLength] = new Array();
    9. queue[queueLength][0] = file;
    10. queue[queueLength][1] = queryString;
    11. queue[queueLength][2] = div;
    12. } else {
    13. if(queryString == "") {
    14. xmlHttp.open('GET', file, true);
    15. } else {
    16. xmlHttp.open('POST', file, true);
    17. xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    18. xmlHttp.send(queryString);
    19. }
    20. xmlHttp.onreadystatechange = function () {
    21. if(xmlHttp.readyState == 4) {
    22. if(xmlHttp.status == 200) {
    23. document.getElementById(div).innerHTML = xmlHttp.responseText;
    24. } else if(xmlHttp.status == 404) {
    25. document.getElementById(div).innerHTML = 'Die Datei wurde nicht gefunden!';
    26. }
    27. /* Warteschlange abarbeiten */
    28. queueLength = queue.length;
    29. if(queueLength != 0) {
    30. sendRequestneu(queue[0][0], queue[0][1], queue[0][2]);
    31. queue.shift(); //Erstes Element entfernen, den Rest eine Position nach vorne rücken
    32. }
    33. }
    34. };
    35. if(queryString == "") {
    36. xmlHttp.send(null);
    37. }
    38. }
    39. }
    40. }
    41. function sendRequest_w(wert,feldname,id_fragen,checkbox,zaehler,zahl) {
    42. var wert_ = wert.replace(/,/, '.');
    43. sendRequestneu("wette.php", 'wert='+ escape(wert)+'&feldname='+ feldname +'&id_fragen='+id_fragen+'&checkbox='+checkbox+'&zahl='+zahl+'&aktion=wetteu', "einzelwette");
    44. document.wette1.max.focus();
    45. }
    46. </script>
    47. <body>
    48. <span id='einzelwette'></span>
    49. </body></html>
    Alles anzeigen

    -------------------

    >>>> wette.php <<<<<<

    Quellcode

    1. <form method="post" name="wette1" action="spiel-und-wetten.php" >
    2. <input type="text" size="40" name="frage" value="Fussball Weltmeister 2005" onBlur="sendRequest_w(document.wette1.frage.value,'frage',88,0,1,1);" >
    3. <input type="text" size="10" name="max" value="201.00" onBlur="sendRequest_w(document.wette1.max.value,'max',88,0,1,1);" >
    4. </form>
  • sehr merkwürdig..
    hab den fehler auch nicht gefunden...

    aber hier mal ein beweis, dass es klappen muss..
    einfach mit deiner wette.php verwenden

    Quellcode

    1. <html><head>
    2. <title>haupt2.html</title>
    3. <script type="text/javascript">
    4. <!--
    5. function ajax() {
    6. try {
    7. req = window.XMLHttpRequest?new XMLHttpRequest():
    8. new ActiveXObject("Microsoft.XMLHTTP");
    9. } catch (e) {
    10. //Kein AJAX Support
    11. }
    12. req.onreadystatechange = function() {
    13. if ((req.readyState == 4) && (req.status == 200)) {
    14. document.getElementById("einzelwette").innerHTML = req.responseText;
    15. document.wette1.max.focus();
    16. }
    17. }
    18. req.open('get', 'wette.php');
    19. req.send(null);
    20. }
    21. //-->
    22. </script>
    23. </head>
    24. <body onload="ajax()">
    25. <span id="einzelwette"></span>
    26. </body></html>
    Alles anzeigen
  • Vielen Dank für deinen Code.

    Das ganze funktioniert bei mir aber nur unter Firefox und Opera, nicht aber im InternetExplorer. Woran kann dies noch liegen.

    Wenn ich im IE auf die Tab-Taste klicke verschwindet der Cursor. Im Firefox und Opera springt der Cursor in das nächste Feld.

    Hoffe da kann mir nochmals jemand weiterhelfen.