Rumah > Artikel > hujung hadapan web > Sebab mengapa form.submit() dalam JS tidak boleh menyerahkan borang
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>
Serahkan data borang ke halaman ini, berikut adalah pemprosesan js
/*注册表单提交*/ function formDeal() { var btnSubmit = document.getElementById('submit'); var formId = document.getElementById('registerForm'); btnSubmit.onclick = function() { //表单的submit()方法不能提交表单 formId.submit(); } }
Jika borang diserahkan , akan ada mesej gesaan pada halaman ini
if(!empty($_GET['action']) && $_GET['action'] == 'register') { echo '你提交了数据'; exit(); }
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"
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.