Heim  >  Artikel  >  Web-Frontend  >  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
PHPznach vorne
2016-05-16 16:34:421884Durchsuche

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>

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();
     }
 }

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();
 }

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"

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.

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen