91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

button按鈕無法提交表單問題發現與解決

發布時間:2020-07-13 04:10:46 來源:網絡 閱讀:3315 作者:飛舞的手指 欄目:開發技術

  前些天,我在用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.onload=function(){
            var btn=document.getElementById('submit');
            var form=document.getElementsByTagName('form')[0];
            btn.onclick=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.onload=function(){
            var btn=document.getElementById('btn');
            var form=document.getElementsByTagName('form')[0];
            btn.onclick=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=啊"的數據,如下圖:

button按鈕無法提交表單問題發現與解決


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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <script type="text/javascript">
        window.onload=function(){
            var btn=document.getElementsByName('submit');     //通過name屬性找到按鈕元素
            var form=document.getElementsByTagName('form')[0];
            btn.onclick=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()這個方法,所以它不執行了。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镶黄旗| 四会市| 融水| 思南县| 咸宁市| 天镇县| 峨边| 宣汉县| 裕民县| 清镇市| 上高县| 隆德县| 邮箱| 二手房| 洞头县| 无棣县| 虹口区| 高尔夫| 禄丰县| 渝中区| 思茅市| 高尔夫| 宁强县| 比如县| 公主岭市| 南昌市| 宣恩县| 错那县| 临江市| 同仁县| 陆丰市| 通江县| 同德县| 鞍山市| 灵山县| 汉中市| 灵武市| 江达县| 宁夏| 平果县| 新余市|