Problem mit JavaScript und Textfeld

maeg

Erfahrenes Mitglied
Hi zusammen,

ich sitze vor einem unerklärlichen Problem:

Ich hab eine Seite mit fünf verschiedenen DIVs, welche am Anfang den style="display:none;" haben - um nicht angezeigt zu werden.

Ich hab ein Textfeld, in dem ich eine Sendungsnummer eingebe: Nach dem Submit werden über einen AJAX-Request verschiedene Daten aus der DB geholt und zurückgegeben.

Diese Daten werden nun ausgewertet und dadurch das entsprechende unsichtbare DIV durch folgenden Javascript-Code angezeigt:

HTML:
function showForm(a) {
   // Form der jeweiligen Sendungsart einblenden
   document.getElementById(a).style.display = 'block';                        
}

Das funktioniert auch ... Zumindest solange, bis ich in einem versteckten DIV ein Textfeld einbaue. Mein DIV sieht dann so aus:

HTML:
                <div style="display:none;" id="z">
                    <table width="400">
                        <tr>
                            <td colspan="2" class="menuHead">Zugestellt</td>
                        </tr>
                        <tr>
                            <td>Übergebendasd an:</td>
                            <td><input type="text" id="uebergeben"></td>
                        </tr>
                    </table>
                </div>

Nun submitted mein Form nach einem Klick auf "Enter" nicht mehr.
Im Opera funktioniert es - im Firefox und Internet Explorer jedoch nicht.

Ich bin ratlos!

Hat jemand eine Idee?

Viele Grüsse,

magnus

**EDIT**
Übrigens: Wenn ich anstatt des Textfeldes ein Radiobutton, eine Checkbox oder eine Textarea einbaue funktioniert das ganze..
 
Nichts - garnichts.
Hab mehrmals überprüft, ob ich alle <div>, <head>, <body> und <form> - Tags geschlossen habe - sind alle zu ..
 
Hier der komplette Code:

HTML:
<?php

require("conado.inc.php");

//$user_ide = "13667";

$user_ide = "7119";
$user_depot = "77";
$user_depot_nr = "000";

$fide = $user_ide;

?>


<html>
    <head>
        
        <title>Dispo-Status-Vergabe</title>
        
        <script language="JavaScript" type="text/javascript">
            
        <!--
        var xml = null;
        var timer = 0;
        var b = 7119;
                                                                                        
        function sendAjaxQuery(datei, insert, delay) {
            if(delay == 0) {
                sendAjaxQuery2(escape(datei),escape(insert));
            } else {
                window.clearTimeout(timer);
                timer = window.setTimeout('sendAjaxQuery2("'+escape(datei)+'","'+escape(insert)+'")', delay);
            }
        }
            
        // Daten abrufen
        function sendAjaxQuery2(datei, insert) {
          datei = unescape(datei);
          // Decodieren wird in der CallbackFunktion durchgeführt
          //insert = unescape(insert);
          if(xml == null) {
            if(window.XMLHttpRequest) {
              xml = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
              try {
                xml = new ActiveXObject('Msxml2.XMLHTTP');
              } catch(e1) {
                try {
                  xml = new ActiveXObject('Microsoft.XMLHTTP');
                } catch(e2) { }
              }
            }
          }
        
          if(xml != null) {
            xml.open('GET',datei,true);
            xml.onreadystatechange = function(){cbAjaxQuery(insert);};
            xml.send(null);
          }
        }
        
        // Response verarbeiten
        function cbAjaxQuery(insert) {
            if(xml.readyState == 4 && xml.status == 200) {
              insert = unescape(insert);
              rueckgabe = xml.responseText;
              if(rueckgabe) {
                  //alert(rueckgabe);
                  fahrer = <?php echo $user_ide;?>;
                  var daten = rueckgabe.split(",");
                  if(daten[0] != 99) {
                      document.getElementById('warten').style.display = 'none';
                      if(daten[1] != fahrer) {
                          showForm('fahrerauswahl');
                      } else {
                          showForm(daten[0]);
                      }
                  } else {
                      showForm('99');
                  }
                }
                //eval(insert+" = xml.responseText");
            }
        }
        
        function setFahrer(f) {    
            document.f.fahrer.value = f;        
            var daten = rueckgabe.split(",");
            showForm(daten[0]);        
        }
        
        function getFahrer() {
            alert(document.f.fahrer.value);
        }
                            
        function checkArt(u) {
            var rueckgabe = sendAjaxQuery('ajax-dispo.php?sndnr='+escape(u),'document.getElementById("sndart").innerHTML',300);
        }
        
        function showForm(a) {
            // Form der jeweiligen Sendungsart einblenden
            document.getElementById(a).style.display = 'block';                        
        }
        
        function deleteForms() {
            // Alle Forms ausblenden
            document.getElementById('1').style.display = 'none';
            document.getElementById('2').style.display = 'none';            
            document.getElementById('99').style.display = 'none';
            document.getElementById('fahrerauswahl').style.display = 'none';
            deleteIdentForms();
        }
        
        function deleteIdentForms() {
            // Alle Ident-Forms ausblenden
            document.getElementById('z').style.display = 'none';
            document.getElementById('na').style.display = 'none';
            document.getElementById('av').style.display = 'none';
            document.getElementById('in').style.display = 'none';
        }
                                                    
        -->
        </script>
        <link rel=stylesheet type="text/css" href="style.css">
    </head>
            
<body onload="document.f.sndnr.focus();">
                        
            
        <form name="f" onSubmit="deleteForms(); showForm('warten'); checkArt(document.f.sndnr.value); return false;">
        
        <table width="400" align="center">
                
        <input type="hidden" name="fahrer">
        
        <tr>
            <td class="menuHead">Dispo-Status-Vergabe</td>
        </tr>
        
        <tr>
            <td align="center" class="menuItem"><b>Sendungsnummer:</b><br><input type="text" name="sndnr" class="input" size="40"></td>
        </tr>
        
        <tr>
            <td>
                
                <div align="center" id="warten" style="display:none;"><b>Bitte warten..</b></div>
                
                <div align="center" style="background-color: #ff0000; display:none;" id="99"><b>Sendung nicht gefunden!</b></div>
                
                <div class="menuItem" style="display:none;" id="2">PZA</div>
                
                <!-- Fahrerauswahl Start -->
                <div style="display:none;" id="fahrerauswahl">
                     <table width="400">
                        <tr>
                            <td colspan="2" class="menuHead">Fahrer auswählen</td>
                        </tr>

                        <tr class="menuItem">
                            <td align="center">
                                
                            <?php
                            
                            $sql = "select ide, vorname + ' ' + nachname as 'fahrer' from benutzer where depot in (".$user_depot.") and status = 1 and benuart = 4 order by nachname";
                            $res = $db->Execute($sql);
                                                                                                                
                            echo "<select onChange=\"setFahrer(document.f.fide.value);\" name=\"fide\">";
                            echo "<option value='0'>- Zusteller auswählen -</option>";
                            while(!$res->EOF) {
                                echo '<option value="'.$res->fields['ide'].'">'.$res->fields['fahrer'].'</option>';
                                $res->MoveNext();
                            }
                                                        
                            echo '</select>';
                            
                            ?>    
                                                                                            
                            </td>
                        </tr>                    
                    </table>
                </div>                
                <!-- Fahrerauswahl Ende -->
                
                <!-- Identsendung Start -->
                <div style="display:none;" id="1">
                     <table width="400">
                        <tr>
                            <td colspan="2" class="menuHead">Identsendung</td>
                        </tr>
                        <tr class="menuItem">
                            <td align="center"><input type="button" onClick="deleteIdentForms(); showForm('z');" value="Zugestellt"> <input type="button" onClick="deleteIdentForms(); showForm('na');" value="NA"> <input type="button" onClick="deleteIdentForms(); showForm('in');" value="IN"> <input type="button" onClick="deleteIdentForms(); showForm('av');" value="AV"></td>
                        </tr>                    
                    </table>
                </div>
                <!-- Identsendung Ende -->
        
                <!-- Ident Z Start -->
                <div style="display:none;" id="z">
                    <table width="400">
                        <tr>
                            <td colspan="2" class="menuHead">Zugestellt</td>
                        </tr>
                        <tr>
                            <td>Übergeben an:</td>
                            <td><input type="text" id="lalala" name="lalala"></td>
                        </tr>
                    </table>
                </div>
                <!-- Ident Z Ende -->                                            
                                
                <!-- Ident NA Start -->
                <div style="display:none;" id="na">
                    <table width="400">
                        <tr>
                            <td class="menuHead">Nicht angetroffen</td>
                        </tr>
                    </table>
                </div>
                <!-- Ident NA Ende -->                


                <!-- Ident IN Start -->
                <div style="display:none;" id="in">
                    <table width="400">
                        <tr>
                            <td class="menuHead">Identität negativ</td>
                        </tr>
                    </table>
                </div>
                <!-- Ident IN Ende -->
                
                                
                <!-- Ident AV Start -->
                <div style="display:none;" id="av">
                    <table width="400">
                        <tr>
                            <td class="menuHead">Annahme verweigert</td>
                        </tr>
                    </table>
                </div>
                <!-- Ident AV Ende -->    
                                
            </td>
        </tr>
    </table>    
    </form>
                            
</body>
</html>
 
Hi,

könntest Du das vielleicht noch ein wenig erklären? Ich steige kaum durch den Code durch...
Wo wird dieses Formular überhaupt abgeschickt? Wo hast Du ein Element mit der id "sndart"?
ids dürfen übrigens nicht mit einer Zahl beginnen.

LG

Nachtrag: Der generierte Code wäre vielleicht noch interessant.
 

Neue Beiträge

Zurück