Sebab mengapa form.submit() dalam JS tidak boleh menyerahkan borang

PHPz
Lepaskan: 2018-09-30 15:25:18
ke hadapan
1891 orang telah melayarinya

Artikel ini terutamanya memperkenalkan sebab ralat mengapa form.submit() dalam JS tidak boleh menyerahkan borang. Kesimpulan akhir artikel ini ialah anda tidak boleh menggunakan hantar untuk ID dan nama butang Rakan yang memerlukan boleh merujuk kepadanya

Pergi terus ke kod:

<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>
Salin selepas log masuk

Serahkan data borang ke halaman ini, berikut adalah pemprosesan js

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

Jika borang diserahkan , akan ada mesej gesaan pada halaman ini

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

Hasilnya ialah saya tidak melihat mesej gesaan selepas menguji untuk masa yang lama, saya fikir ia adalah kerana kod itu salah atau kaedah telah ditulis salah. Saya menyemak dengan teliti dan menyemak dokumen keputusan rasmi untuk mengesahkan bahawa tiada ralat.

formId.submit() tidak boleh diserahkan, jadi saya terpaksa menukar jenis btnSubmit untuk diserahkan buat masa ini

 this.type="submit"
Salin selepas log masuk

Saya menyemak maklumat dalam talian, dan sebabnya sudah jelas kepada dua mata:

1. Borang tidak boleh mempunyai nama tag="submit"

2. Borang tidak boleh kehilangan "enctype="multipart/form-data""

Selepas ujian, kedua-dua titik ini Mengarut, ia tidak menyelesaikan masalah saya (mungkin persekitaran masalah saya berbeza)

Kemudian, saya fikir rakan forum mencadangkan saya menukar ID butang pendaftaran kepada nama yang berbeza tanpa menyerahkan. Selepas pembetulan, borang diserahkan seperti biasa dan mesej gesaan muncul.

Ringkasan akhir: Jangan tetapkan id butang untuk diserahkan, jika tidak, ia boleh menyebabkan kekeliruan dan menyebabkan kaedah submit() borang gagal menyerahkan borang. Apabila menamakan ID, sebaiknya jangan menduplikasi nama dengan API sedia ada untuk mengelakkan gangguan yang tidak perlu.

Label berkaitan:
js
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!