Maison > interface Web > js tutoriel > 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
Libérer: 2018-09-30 15:25:18
avant
1919 Les gens l'ont consulté

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>
Copier après la connexion

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();
     }
 }
Copier après la connexion

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();
 }
Copier après la connexion

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"
Copier après la connexion

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.

Étiquettes associées:
js
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal