javascript
  • jquery
  • html
  • disabled-control
  • 2016-02-02 46 views 0 likes 
    0

    我想禁用提交表單,當用戶按下輸入字段上的輸入,但我似乎無法得到任何工作。我已經嘗試了最新的腳本中加入這頭:JavaScript禁用輸入表單不起作用

    <script type="text/javascript"> 
        $(document).ready(function() { 
         $(window).keydown(function(event){ 
          if(event.target.tagName != 'INPUT') { 
           if(event.keyCode == 13) { 
            event.preventDefault(); 
            return false; 
           } 
          } 
         }); 
        }); 
    </script> 
    

    我沒有收到在控制檯中的任何錯誤,所以我不能告訴如果事情是相互衝突的。

    +3

    你想'$( '形式')上( '提交',函數(E){e.preventDefault();})' – adeneo

    回答

    3

    現在你正在窗口捕獲事件,所以preventDefault()不會做你想做的事情。你需要從形式捕捉它這樣就可以防止其默認提交操作

    嘗試:

    $('form').on('keyup keypress', function(e) { 
        var keyCode = e.keyCode; 
        if (keyCode === 13) { 
        e.preventDefault(); 
        return false; 
        } 
    }); 
    
    +0

    ,就應該替換 'KEYUP按鍵' 與事件「代表團提交',否則這段代碼將在每次用戶與表單交互時執行。 – DinoMyte

    +0

    我不同意。我認爲檢查每個按鍵更有意義。所有這一切都是檢查是否是關鍵代碼是13,所以它不像每次運行都有很多開銷 – Pabs123

    +0

    條件keyCode === 13在該函數內被檢查。這意味着,不管按什麼鍵,函數總是被調用。 – DinoMyte

    0

    您可以使用event capturing了點。

    window.addEventListener('keydown',function(event) { 
         if(event.target.tagName != 'INPUT') { 
          if(event.keyCode == 13) { 
           event.preventDefault(); 
           return false; 
          } 
         } 
        }, true); 
    
    相關問題