隨筆-193  評論-715  文章-1  trackbacks-0
          本Blog所有內容不得隨意轉載,版權屬于作者所有。如需轉載請與作者聯系( fastzch@163.com )。
          未經許可的轉載,本人保留一切法律權益。
          一直以來,發現有某些人完全不尊重我的勞動成果,隨意轉載,提醒一下那些人小心哪天惹上官司。


          今天同事一大早問我一個他覺得比較奇怪的問題:form的onsubmit屬性中的方法在提交時為什么沒反應?經過了解發現狀況如下:
          他寫的頁面中form有onsubmit屬性,并指定了一個javascript函數,期望form在提交前執行這個函數,以處理一些檢查等動作,但form的提交并不是像我們通常使用的input:submit這樣的button去做的,而是用一個普通input:button,在onclick屬性中指定了一個javascript函數,在這個函數里面再執行form的submit()函數。
          示意代碼如下:
          <!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>
          此時,頁面彈出了“333”的提示,但沒有彈出“2222”的提示。

          分析了一下原因:onsubmit屬性的觸發時機是在form用input:submit這樣的button提交時才會觸發,否則不會觸發。
          后來,在官方文檔上也找到了如下說明,證明了我的這一分析,如下:
          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.

          為了證實這一分析,我做了一個完整的測試:
          <!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>
          點擊submit按鈕即可出現“2222”提示,點擊button的話,會出現“333”提示。
          posted on 2008-10-24 11:33 Robin's Programming World 閱讀(5526) 評論(14)  編輯  收藏 所屬分類: 其它

          評論:
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-24 20:58 | 007
          sb....  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機[未登錄] 2008-10-24 21:03 | ssh
          你前面那短話,真讓人惡心,幾篇破文章就這,謙虛一點好吧。能看你的文章是看的起你,不行了就洗洗睡覺。  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-25 11:35 | akuli
          看到你第一段話,以為有多高深的東西,結果讓人非常失望!!!
          別人覺得你的文章好才會轉載,既然你不想讓人轉載就不要放到網上來!??!  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機[未登錄] 2008-10-25 18:43 | hi
          情況確實如此,要解決這個問題可以模擬submit事件。
          在Brocade腳本庫里有實現,調用Form.submit(form)方法。
          http://brocade.sf.net  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-25 19:12 | CowNew開源團隊
          “能看你的文章是看的起你”
          流氓,暴民  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-25 21:36 | Robin's Java World
          @CowNew開源團隊
          像這種人最有效的辦法就是不理他,對沒素質的人不理會。  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-25 21:36 | Robin's Java World
          @hi
          Brocade是個不錯的東東,謝謝推薦!  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2008-10-27 11:32 | temper
          @ssh
          這也太無恥了吧?我真懷疑哪個公司敢用有這種思想的人。  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機[未登錄] 2009-03-23 11:29 |
          @akuli
          支持!
          博主請三思!  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機[未登錄] 2009-08-16 17:30 | 哈哈
          真惡心,我還以為嘍豬有什么高見,一看原來是當寶貝的垃圾?。?nbsp; 回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2009-09-07 12:43 | niba
          真惡心,我還以為嘍豬有什么高見,一看原來是當寶貝的垃圾!!  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2011-08-01 19:07 | tt
          艸 ,怎么沒說怎么解決的方法  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機 2012-08-18 22:34 | zzz
          說的挺好。。  回復  更多評論
            
          # re: 關于HTML中onSubmit屬性的觸發時機[未登錄] 2013-02-06 12:21 | aa
          說了半天, 還不是沒解決問題么? 以為您有多牛逼。  回復  更多評論
            
          主站蜘蛛池模板: 鄂托克旗| 依安县| 永和县| 常熟市| 米泉市| 探索| 西华县| 长垣县| 鄂尔多斯市| 隆德县| 峨边| 依兰县| 嘉善县| 樟树市| 张家港市| 庆云县| 通河县| 浦城县| 吕梁市| 谢通门县| 左贡县| 玉树县| 桂阳县| 安图县| 荃湾区| 德昌县| 长宁区| 正定县| 驻马店市| 大荔县| 黄山市| 金阳县| 竹北市| 赤城县| 永川市| 本溪| 涿鹿县| 任丘市| 定州市| 保德县| 肇源县|