Maison  >  Article  >  interface Web  >  La raison pour laquelle form.submit() dans JS ne peut pas soumettre le formulaire

La raison pour laquelle form.submit() dans JS ne peut pas soumettre le formulaire

PHPz
PHPzavant
2016-05-16 16:34:421885parcourir

Cet article présente principalement la raison de l'erreur pour laquelle form.submit() dans JS ne peut pas soumettre le formulaire. La conclusion finale de cet article est que vous ne devez pas utiliser submit pour l'ID et le nom du bouton Les amis dans le besoin peuvent se référer. à lui

Allez directement au 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>

Soumettez les données du formulaire à cette page, ce qui suit est un traitement js

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

Si le formulaire est soumis , il y aura un message d'invite sur cette page

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

Le résultat est que je n'ai pas vu le message d'invite après avoir testé pendant longtemps, je pensais que c'était parce que le code ou la méthode était erroné. a été mal écrit. J'ai vérifié attentivement et vérifié le document des résultats officiels pour confirmer qu'il n'y avait pas d'erreur.

formId.submit() ne peut pas être soumis, j'ai donc dû changer le type de btnSubmit à soumettre pour le moment

 this.type="submit"

J'ai vérifié les informations en ligne et la raison s'est résumée en deux points :

1. Le formulaire ne peut pas avoir la balise name="submit"

2. Le formulaire ne peut pas manquer "enctype="multipart/form-data""

Après tests, ces deux points sont ridicules, cela n'a pas résolu mon problème (peut-être que mon environnement problématique est différent)

Plus tard, j'ai pensé que des amis du forum m'avaient suggéré de changer l'ID du bouton d'inscription en un nom différent sans se soumettre. Après la correction, le formulaire est soumis normalement et le message d'invite apparaît.

Résumé final : Ne définissez pas l'identifiant du bouton à soumettre, sinon cela pourrait prêter à confusion et empêcher la méthode submit() du formulaire de soumettre le formulaire. Lorsque vous nommez l'ID, il est préférable de ne pas dupliquer le nom avec l'API existante pour éviter des désagréments inutiles.

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer