Heim > Artikel > Web-Frontend > Fehlerursachen und Lösungen, wenn form.submit() die form_javascript-Fähigkeiten nicht übermitteln kann
Gehe direkt zum Code:
<div id="register"> <h4>会员注册</h4> <div class="formdiv"> <form method="post" action="register.php?action=register" name="register" id="registerForm"> <dl> <dt>请认真填写以下内容</dt> <dd class="hasspan"> 用户名:<input type="text" name="username"> </dd> <dd class="hasspan"> 密码:<input type="password" name="pwd"> </dd> <dd class="hasspan"> 确认密码:<input type="password" name="pwdagain"> </dd> <dd id="tximg"> <img src="img/face/m01.gif" alt="选择头像" id="faceimg"> <input type="hidden" name="touxiang" value=""> <label id="imgsrclabel">m01.gif</label> </dd> <dd style="margin-right:120px;"> 验证码:<input type="text" name="code"> <span> <img src="code.php" alt="code" id="code" name="code"> <a href="#code" id="change">换一张</a> </span> </dd> <dd class="btns"> <input type="button" name="submit" id="submit" value="注册"> <input type="button" name="quit" id="quit" value="退出"> </dd> </dl> </form> </div> </div> 表单数据提交到本页面,下面是js处理 /*注册表单提交*/ function formDeal() { var btnSubmit = document.getElementById('submit'); var formId = document.getElementById('registerForm'); btnSubmit.onclick = function() { //表单的submit()方法不能提交表单 formId.submit(); } } 如果表单提交,在本页面有一段提示信息 if(!empty($_GET['action']) && $_GET['action'] == 'register') { echo '你提交了数据'; exit(); }
Das Ergebnis ist, dass ich die Aufforderungsmeldung nach dem Testen lange Zeit nicht gesehen habe. Ich dachte, der Code sei falsch oder die Methode sei falsch geschrieben. Ich habe sorgfältig nachgesehen und das offizielle Ergebnisdokument überprüft, um zu bestätigen, dass dies nicht der Fall war Fehler.
formId.submit() kann nicht übermittelt werden, daher muss ich den Typ von btnSubmit zum Senden ändern
this.type="submit"
Nach Prüfung der Informationen online lassen sich die Gründe in zwei Punkten zusammenfassen:
1. Das Formular darf nicht das Tag name="submit"
haben2. „enctype="multipart/form-data"" darf im Formular nicht fehlen
Nach dem Test sind diese beiden Punkte lächerlich und lösen mein Problem nicht (vielleicht ist meine Problemumgebung anders)
Später dachte ich, einige Freunde im Forum hätten mir vorgeschlagen, die ID der Registrierungsschaltfläche in einen neuen Namen zu ändern, anstatt sie einzureichen. Nach der Korrektur wird das Formular normal übermittelt und die Eingabeaufforderung erscheint.
Abschließende Zusammenfassung: Legen Sie die ID der Schaltfläche zum Senden nicht fest, da dies sonst zu Verwirrung führen und dazu führen kann, dass die Methode „submit()“ des Formulars das Senden des Formulars fehlschlägt. Bei der Benennung der ID ist es am besten, den Namen nicht mit der vorhandenen API zu duplizieren, um unnötigen Ärger zu vermeiden.