Heim > Web-Frontend > js-Tutorial > Der Grund, warum form.submit() in JS das Formular nicht senden kann

Der Grund, warum form.submit() in JS das Formular nicht senden kann

PHPz
Freigeben: 2018-09-30 15:25:18
nach vorne
1919 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich den Fehlergrund vor, warum form.submit() in JS das Formular nicht senden kann. Die endgültige Schlussfolgerung dieses Artikels ist, dass Sie „Submit“ nicht für die ID und den Namen der Schaltfläche „Freunde in Not“ verwenden sollten dazu

Gehen Sie direkt zum Code:

<p id="register">
     <h4>会员注册</h4>
     <p class="formp">
         <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>
     </p>
 </p>
Nach dem Login kopieren

Senden Sie die Formulardaten an diese Seite, das Folgende ist die js-Verarbeitung

/*注册表单提交*/
 function formDeal()
 {
     var btnSubmit = document.getElementById(&#39;submit&#39;);
     var formId = document.getElementById(&#39;registerForm&#39;);
     btnSubmit.onclick = function()
     {
         //表单的submit()方法不能提交表单
         formId.submit();
     }
 }
Nach dem Login kopieren

Wenn das Formular gesendet wird , es wird eine Aufforderungsmeldung auf dieser Seite geben

if(!empty($_GET[&#39;action&#39;]) && $_GET[&#39;action&#39;] == &#39;register&#39;)
 {
     echo &#39;你提交了数据&#39;;
     exit();
 }
Nach dem Login kopieren

Das Ergebnis ist, dass ich die Aufforderungsmeldung nach langem Testen nicht gesehen habe, ich dachte, es läge daran, dass der Code oder die Methode falsch war war falsch geschrieben und habe das offizielle Ergebnisdokument sorgfältig überprüft, um sicherzustellen, dass kein Fehler vorlag.

formId.submit() kann nicht übermittelt werden, daher musste ich vorerst den Typ von btnSubmit ändern, um es zu übermitteln

 this.type="submit"
Nach dem Login kopieren

Ich habe die Informationen online überprüft und der Grund war klar auf zwei Punkte:

1. Das Formular darf nicht den Tag name="submit" haben

2. Im Formular darf „enctype="multipart/form-data"" nicht fehlen

Nach dem Testen sind diese beiden Punkte lächerlich, sie haben mein Problem nicht gelöst (vielleicht ist meine Problemumgebung anders)

Später dachte ich, Freunde aus dem Forum hätten mir vorgeschlagen, die ID der Registrierungsschaltfläche in zu ändern einen anderen Namen ohne Absenden. Nach der Korrektur wird das Formular normal übermittelt und die Eingabeaufforderung erscheint.

Abschließende Zusammenfassung: Legen Sie nicht die ID der Schaltfläche zum Senden 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.

Verwandte Etiketten:
js
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage