隨筆-193  評(píng)論-715  文章-1  trackbacks-0
          本Blog所有內(nèi)容不得隨意轉(zhuǎn)載,版權(quán)屬于作者所有。如需轉(zhuǎn)載請(qǐng)與作者聯(lián)系( fastzch@163.com )。
          未經(jīng)許可的轉(zhuǎn)載,本人保留一切法律權(quán)益。
          一直以來(lái),發(fā)現(xiàn)有某些人完全不尊重我的勞動(dòng)成果,隨意轉(zhuǎn)載,提醒一下那些人小心哪天惹上官司。


          今天同事一大早問(wèn)我一個(gè)他覺(jué)得比較奇怪的問(wèn)題:form的onsubmit屬性中的方法在提交時(shí)為什么沒(méi)反應(yīng)?經(jīng)過(guò)了解發(fā)現(xiàn)狀況如下:
          他寫(xiě)的頁(yè)面中form有onsubmit屬性,并指定了一個(gè)javascript函數(shù),期望form在提交前執(zhí)行這個(gè)函數(shù),以處理一些檢查等動(dòng)作,但form的提交并不是像我們通常使用的input:submit這樣的button去做的,而是用一個(gè)普通input:button,在onclick屬性中指定了一個(gè)javascript函數(shù),在這個(gè)函數(shù)里面再執(zhí)行form的submit()函數(shù)。
          示意代碼如下:
          <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">
          <HTML>
          <HEAD>
          ????
          <script?language="javascript">
          ????????
          function?t(){
          ????????????
          var?f=document.getElementById("f");
          ????????????f.submit();
          ????????????alert('
          333');
          ????????}

          ????
          </script>
          </HEAD>
          ????
          <BODY>
          <form?id="f"?onsubmit="alert('2222');">
          ????
          <input?type="button"?value="button"?onclick="t();"/>
          </form>
          </BODY>
          </HTML>
          此時(shí),頁(yè)面彈出了“333”的提示,但沒(méi)有彈出“2222”的提示。

          分析了一下原因:onsubmit屬性的觸發(fā)時(shí)機(jī)是在form用input:submit這樣的button提交時(shí)才會(huì)觸發(fā),否則不會(huì)觸發(fā)。
          后來(lái),在官方文檔上也找到了如下說(shuō)明,證明了我的這一分析,如下:
          The?submit?method?does?not?invoke?the?onsubmit?event?handler.?Call?the?onsubmit?event?handler?directly.?When?using?Microsoft??Internet?Explorer?5.5?and?later,?you?can?call?the?fireEvent?method?with?a?value?of?onsubmit?in?the?sEvent?parameter.

          為了證實(shí)這一分析,我做了一個(gè)完整的測(cè)試:
          <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">
          <HTML>
          <HEAD>
          ????
          <script?language="javascript">
          ????????
          function?t(){
          ????????????
          var?f=document.getElementById("f");
          ????????????f.submit();
          ????????????alert('
          333');
          ????????}

          ????
          </script>
          </HEAD>
          ????
          <BODY>
          <form?id="f"?onsubmit="alert('2222');">
          ????
          <input?type="submit"?value="submit"?/>?
          ????
          <input?type="button"?value="button"?onclick="t();"/>
          </form>
          </BODY>
          </HTML>
          點(diǎn)擊submit按鈕即可出現(xiàn)“2222”提示,點(diǎn)擊button的話(huà),會(huì)出現(xiàn)“333”提示。
          posted on 2008-10-24 11:33 Robin's Programming World 閱讀(5525) 評(píng)論(14)  編輯  收藏 所屬分類(lèi): 其它

          評(píng)論:
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-24 20:58 | 007
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī)[未登錄](méi) 2008-10-24 21:03 | ssh
          你前面那短話(huà),真讓人惡心,幾篇破文章就這,謙虛一點(diǎn)好吧。能看你的文章是看的起你,不行了就洗洗睡覺(jué)。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-25 11:35 | akuli
          看到你第一段話(huà),以為有多高深的東西,結(jié)果讓人非常失望!!!
          別人覺(jué)得你的文章好才會(huì)轉(zhuǎn)載,既然你不想讓人轉(zhuǎn)載就不要放到網(wǎng)上來(lái)!!!  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī)[未登錄](méi) 2008-10-25 18:43 | hi
          情況確實(shí)如此,要解決這個(gè)問(wèn)題可以模擬submit事件。
          在Brocade腳本庫(kù)里有實(shí)現(xiàn),調(diào)用Form.submit(form)方法。
          http://brocade.sf.net  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-25 19:12 | CowNew開(kāi)源團(tuán)隊(duì)
          “能看你的文章是看的起你”
          流氓,暴民  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-25 21:36 | Robin's Java World
          @CowNew開(kāi)源團(tuán)隊(duì)
          像這種人最有效的辦法就是不理他,對(duì)沒(méi)素質(zhì)的人不理會(huì)。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-25 21:36 | Robin's Java World
          @hi
          Brocade是個(gè)不錯(cuò)的東東,謝謝推薦!  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2008-10-27 11:32 | temper
          @ssh
          這也太無(wú)恥了吧?我真懷疑哪個(gè)公司敢用有這種思想的人。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī)[未登錄](méi) 2009-03-23 11:29 |
          @akuli
          支持!
          博主請(qǐng)三思!  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī)[未登錄](méi) 2009-08-16 17:30 | 哈哈
          真惡心,我還以為嘍豬有什么高見(jiàn),一看原來(lái)是當(dāng)寶貝的垃圾!!  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2009-09-07 12:43 | niba
          真惡心,我還以為嘍豬有什么高見(jiàn),一看原來(lái)是當(dāng)寶貝的垃圾!!  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2011-08-01 19:07 | tt
          艸 ,怎么沒(méi)說(shuō)怎么解決的方法  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī) 2012-08-18 22:34 | zzz
          說(shuō)的挺好。。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于HTML中onSubmit屬性的觸發(fā)時(shí)機(jī)[未登錄](méi) 2013-02-06 12:21 | aa
          說(shuō)了半天, 還不是沒(méi)解決問(wèn)題么? 以為您有多牛逼。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 宣汉县| 彭州市| 比如县| 吉林市| 沿河| 小金县| 安溪县| 增城市| 泰来县| 西林县| 红桥区| 澳门| 浦北县| 泌阳县| 揭阳市| 天等县| 古丈县| 渑池县| 团风县| 原阳县| 六枝特区| 全州县| 华安县| 广宗县| 罗平县| 寻乌县| 南开区| 陆丰市| 宣化县| 台南市| 湖南省| 竹北市| 玉环县| 临沧市| 承德市| 彰武县| 新昌县| 南雄市| 广元市| 宣威市| 红原县|