InvalidStateError: DOM Exception 11 und Uncaught TypeError: Cannot call method 'submit' null
Suchte ich nach einer möglichen Antwort und habe mich durch ein paar posts darunter
Wie zu beheben "Uncaught TypeError: Cannot call method 'appendChild' von null" und Empfangen "InvalidStateError: DOM Exception 11" beim websocket.senden aber keiner von Ihnen scheinen, um mein problem zu lösen.
Die Schaltfläche speichern, um Daten aus html-Formular in die mysql-Datenbank arbeiten völlig in Ordnung, bis die Seite begann mit zwei Fehlern
-
Dem drop-down-Menüs auf der Seite aktualisiert werden dynamisch aus der Datenbank mittels ajax. Sie sind immer noch gut funktioniert, und automatisch aktualisiert, je nach der gewählten option, aber wenn ich klicken Sie auf die drop-down-Menüs, die Fehler Konsole zeigt
"Uncaught error: InvalidStateError: DOM Exception 11 on createoptions.js line 37
diexmlhttp.send();
-
Wenn ich auf die Schaltfläche speichern, statt eine Antwort oder speichern von Daten in die Datenbank ein Fehler auftaucht, der sagt,
Uncaught TypeError: Cannnot call method "submit" of null
. Aufpassen, das Objekt, ruft der Methode submit() bereits vorhanden ist. Ich verwendetdocument.getElementById('studentdata').submit()"
und die form studentdata existiert auf der gleichen Seite.
Freundlicherweise highlight der Grund für diese Fehler und was kann ich tun, um Sie zu lösen. Im folgenden ist der code.
createoptions.js
function setdepartment(value){
var xmlhttp;
if (window.XMLHttpRequest)
{//code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("departmentselect1").innerHTML=xmlhttp.responseText;
}
}
switch(value){
case "Allied Health Sciences" : xmlhttp.open("GET","deptahs.php",true); break;
case "Engineering and Inter-disciplinary sciences" : xmlhttp.open("GET","depteids.php",true); break;
case "HIMSR" : xmlhttp.open("GET","depthimsr.php",true); break;
case "Islamic Studies and Social Sciences" : xmlhttp.open("GET","deptisss.php",true); break;
case "Management and Information Technology" : xmlhttp.open("GET","deptmanagement.php",true); break;
case "Medicine (Unani)" : xmlhttp.open("GET","deptmedicine.php",true); break;
case "Nursing" : xmlhttp.open("GET","deptnursing.php",true); break;
case "Pharmacy" : xmlhttp.open("GET","deptpharmacy.php",true); break;
case "Science" : xmlhttp.open("GET","deptscience.php",true); break;
}
xmlhttp.send();
}
page.php und die Linie bezeichnet ist <li><a class="button black" form="studentdata" onclick="document.getElementById('studentdata').submit()">Save</a></li>
<div class="navbutton">
<aside>
<ul>
<li><a class="button black" href="logout.php">Logout</a></li>
<li><a class="button black" onclick="addRow()">Add Row</a></li>
<li><a href="#searchbox" class="button black" onclick="showsearch()">Search</a></li>
<li><a href="#promotediv" class="button black" onclick="showpromote()">Promote</a></li>
<li><a class="button black" form="studentdata" onclick="document.getElementById('studentdata').submit()">Save</a></li>
</ul>
</aside>
</div>
<form id="studentdata" action="savedata.php" method="POST">
<div style=" padding-left:350px; ">
<div class="dropdown dropdown-dark">
<select name="facultyselect1" id="facultyselect1" style="width:300px;" class="dropdown-select " onfocus="setdepartment(this.value)" onchange="setdepartment(this.value)" required>
<option value="">Select an option</option>
<div id="facultyselect1">
<?php
@ $db = mysql_connect("localhost", "root", "");
mysql_select_db("university");
$strSQL = "SELECT facultyname FROM faculty";
$rs = mysql_query($strSQL);
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++) {
$r = mysql_fetch_array($rs);
echo "<OPTION VALUE=\"".$r["facultyname"]."\">".$r["facultyname"]."</OPTION>";
}
?>
</div>
</SELECT>
</div>
<div class="dropdown dropdown-dark">
<select name="departmentselect1" id="departmentselect1" class="dropdown-select" onchange="setcourse(this.value)" onfocus="setcourse(this.value)" required>
<option value="">Select an option</option>
<div id="departmentselect1">
</div>
</select>
</div>
</div>
</form>
tun
console.log( value );
in Ihrem setdepartment
Funktion. Hat es tatsächlich mit Ihrem 'Fall' - Werte?Ich bin immer die Werte in meinem zweiten drop-down -, das sollte die setdepartment Funktion ist in Ordnung. Was bin ich mehr besorgt, ist der zweite Fehler, dass ich beim klicken auf submit-button.
Ich merke, zwei Elemente mit der gleichen id. Eine id muss immer eindeutig sein, so ändern Sie eines der Elemente mit der id
departmentselect1
.yup, aber im ernst, mit den gleichen ids, ich war in der Lage, zum speichern von Daten in der Datenbank vor. Was ist der Grund für ` kann nicht rufen Sie die Methode "submit" null " hier.
InformationsquelleAutor akashaggarwaal | 2013-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre ersten Fehler
"Uncaught error: InvalidStateError: DOM Exception 11 on createoptions.js line 37
ist verursacht durch manipulieren des DOM. Ich denke, es könnte im Zusammenhang mit der Tatsache, dass Sie zwei Elemente mit der iddepartmentselect1
oder dass das div mit der id ist ungültig syntax, denn es kann nicht sein, ein Kind von einemselect
element. Sie können klicken Sie auf den Pfeil neben diesem Fehler in Chrome und Spurenelemente, die er bis zu dem Punkt, wo es tatsächlich passiert ist. Ähnliche Frage.Uncaught TypeError: Cannnot call method "submit" of null
bedeutet, dassdocument.getElementById('studentdata')
überein keine Elemente, und daher zurückgegebennull
.null
hat keine Methoden, und deshalb wird es auch diesen Fehler auslösen. Das ist seltsam, aber Ihre form hat Doppel-id ' s und hat eine ungültige syntax und kann daher Undefiniertes Verhalten. Versuchen Sie, die Befestigung der ersten problem-und es könnte magisch lösen der andere.Edit:
Ich denke immer noch, Sie sollten den debug-Wert von
value
in Ihremsetdepartment
Funktion für das Menü, das funktioniert nicht. Welches Verhalten hat die Funktion, wenn der Wert nicht übereinstimmt? Was ist die Antwort, die Daten für das Menü, das nicht funktioniert?Sorry, hatte ich kleine Fehler, jetzt das vorzulegen, ist richtig und zum Glück hatte es nichts zu tun mit der doppelten id. Und yup DOM Ausnahme kann aufgrund von duplicate ids nur. Werde versuchen es zu klären. Vielen Dank für die Hilfe.
InformationsquelleAutor Sumurai8