全局禁用backspace事件

<script type="text/javascript">

  //處理鍵盤事件 禁止後退鍵(Backspace)密碼或單行、多行文本框除外 
  function banBackSpace(e) {
    var ev = e || window.event;//獲取event對象 
    var obj = ev.target || ev.srcElement;//獲取事件源 

    var t = obj.type || obj.getAttribute('type');//獲取事件源類型 

    //獲取作爲判斷條件的事件類型 
    var vReadOnly = obj.getAttribute('readonly');
    var vEnabled = obj.getAttribute('enabled');
    //處理null值情況 
    vReadOnly = (vReadOnly == null) ? false : vReadOnly;
    vEnabled = (vEnabled == null) ? true : vEnabled;

    //當敲Backspace鍵時,事件源類型爲密碼或單行、多行文本的, 
    //並且readonly屬性爲true或enabled屬性爲false的,則退格鍵失效 
    var flag1 = (ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea")
      && (vReadOnly == true || vEnabled != true)) ? true : false;

    //當敲Backspace鍵時,事件源類型非密碼或單行、多行文本的,則退格鍵失效 
    var flag2 = (ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
      ? true : false;

    //判斷 
    if (flag2) {
      return false;
    }
    if (flag1) {
      return false;
    }
  }

  //禁止後退鍵 作用於Firefox、Opera 
  document.οnkeypress = banBackSpace;
  //禁止後退鍵 作用於IE、Chrome 
  document.οnkeydοwn = banBackSpace;

</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章