日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

button按钮无法提交表单问题发现与解决

發布時間:2025/7/14 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 button按钮无法提交表单问题发现与解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 前些天,我在用html制作登錄框時遇到一個問題,form表單中的button不能提交表單中的數據。

? 相信你知道,input的type="submit"有提交表單的功能,當然,我們自己也可以給一個input的type="button"的按鈕自定義點擊事件以提交表單。

? 在這里我不用submit而用自定義的button的原因是,submit是無條件提交表單,而登錄框需要對用戶輸入進行判斷,自定義的button能實現在滿足判斷條件后才提交表單。


? 以上,題外話,下面進入正題,我的button為什么不能提交表單?請看代碼:

<!DOCTYPE?html> <html?lang="en"> <head><meta?charset="UTF-8"?/><title>Document</title><script?type="text/javascript">window.οnlοad=function(){var?btn=document.getElementById('submit');var?form=document.getElementsByTagName('form')[0];btn.οnclick=function(){form.submit();}}</script> </head> <body><form?action="http://www.baidu.com"?method="get"><input?type="text"?name="name"?/><input?id="submit"?type="button"?value="提交"?/></form> </body> </html>

? 原本應該是這樣:我在輸入框中隨便打幾個字,然后點擊提交按鈕,我的瀏覽器頁面就向"www.baidu.com"提交一對鍵值對數據。?

? 當我點擊“提交”按鈕,然而并沒有什么反應。


? 各種百度,各種搜貼,發現根本沒人發現這個問題。找了好久,終于在一個老外的帖子中看到回復說是因為button取名為submit導致無法使用。

? 為了驗證,我把button的id名改了,然后發現問題完美解決。

<!DOCTYPE?html> <html?lang="en"> <head><meta?charset="UTF-8"?/><title>Document</title><script?type="text/javascript">window.οnlοad=function(){var?btn=document.getElementById('btn');var?form=document.getElementsByTagName('form')[0];btn.οnclick=function(){form.submit();}}</script> </head> <body><form?action="http://www.baidu.com"?method="get"><input?type="text"?name="name"?/><input?id="btn"?type="button"?value="提交"?/></form> </body> </html>

? 表單提交了,給百度穿了個"name=啊"的數據,如下圖:


? 后來,我又測試name屬性,把button的id去掉,而是添加name屬性并賦值"submit"。神奇,發現button又不能提交表單了。

<!DOCTYPE?html> <html?lang="en"> <head><meta?charset="UTF-8"?/><title>Document</title><script?type="text/javascript">window.οnlοad=function(){var?btn=document.getElementsByName('submit');?????//通過name屬性找到按鈕元素var?form=document.getElementsByTagName('form')[0];btn.οnclick=function(){form.submit();???????//調用表單的提交方法}}</script> </head> <body><form?action="http://www.baidu.com"?method="get"><input?type="text"?name="name"?/><input?name="submit"?type="button"?value="提交"?/></form> </body> </html>

? 至此,問題的原因找到了。


? 總結:不能提交的原因是:button的id是“submit”,導致了提交表單功能的失效。按F12,控制臺報錯了:Uncaught TypeError: form.submit is not a function 。問題的根源在于,對form中的button命名submit,這個名字和form的提交表單方法submit()名字重復了,這就導致了系統無法識別submit()這個方法,所以它不執行了。

? 延伸:在編寫代碼時,我們應該注意命名的規范,應該與原生語言的保留字、關鍵字區分開。

轉載于:https://blog.51cto.com/webexp/1830564

總結

以上是生活随笔為你收集整理的button按钮无法提交表单问题发现与解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。