隨筆-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 | 哈哈
          真惡心,我還以為嘍豬有什么高見,一看原來是當寶貝的垃圾!!  回復  更多評論
            
          # 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
          說了半天, 還不是沒解決問題么? 以為您有多牛逼。  回復  更多評論
            
          主站蜘蛛池模板: 忻州市| 彰化市| 天津市| 仲巴县| 贞丰县| 乌什县| 虞城县| 溧阳市| 开封市| 轮台县| 凉城县| 来安县| 诸城市| 南宁市| 玉林市| 融水| 太原市| 抚松县| 鄂伦春自治旗| 武功县| 山阳县| 东方市| 仙游县| 上虞市| 香港 | 合肥市| 邢台县| 河东区| 沅江市| 安平县| 湘潭市| 连城县| 洛扎县| 连江县| 蒙山县| 同心县| 呼伦贝尔市| 门源| 出国| 金山区| 广德县|