Rumah > Artikel > hujung hadapan web > Ralat punca dan penyelesaian apabila form.submit() tidak boleh menyerahkan kemahiran form_javascript
Pergi terus ke kod:
<div id="register"> <h4>会员注册</h4> <div class="formdiv"> <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> </div> </div> 表单数据提交到本页面,下面是js处理 /*注册表单提交*/ function formDeal() { var btnSubmit = document.getElementById('submit'); var formId = document.getElementById('registerForm'); btnSubmit.onclick = function() { //表单的submit()方法不能提交表单 formId.submit(); } } 如果表单提交,在本页面有一段提示信息 if(!empty($_GET['action']) && $_GET['action'] == 'register') { echo '你提交了数据'; exit(); }
Hasilnya ialah saya tidak melihat mesej gesaan selepas ujian untuk masa yang lama, saya fikir kod itu salah atau kaedahnya salah. Saya menyemak dengan teliti dan menyemak dokumen keputusan rasmi untuk mengesahkan bahawa tiada ralat.
formId.submit() tidak boleh diserahkan, jadi saya perlu menukar jenis btnSubmit untuk diserahkan
this.type="submit"
Selepas menyemak maklumat dalam talian, sebabnya boleh disimpulkan dalam dua perkara:
1. Borang tidak boleh mempunyai nama tag = "submit"
2. "enctype="multipart/form-data"" tidak boleh hilang daripada borang
Selepas ujian, dua perkara ini tidak masuk akal dan tidak menyelesaikan masalah saya (mungkin persekitaran masalah saya berbeza)
Kemudian, saya fikir beberapa rakan forum mencadangkan saya menukar ID butang pendaftaran kepada nama baharu dan bukannya 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 serah() borang gagal menyerahkan borang. Apabila menamakan ID, sebaiknya jangan menduplikasi nama dengan API sedia ada untuk mengelakkan gangguan yang tidak perlu.