jQuery控制文本框只能輸入數(shù)字和字母及使用方法

字號:


    這篇文章主要介紹了jQuery控制文本框只能輸入數(shù)字和字母及使用方法的相關資料,非常不錯而且實用性也很高,需要的朋友可以參考下
    在公司開發(fā)WinForm項目時,發(fā)現(xiàn)公司自主研發(fā)的textbox控件非常強大,可以實現(xiàn)"只能輸入數(shù)字"、"只能輸入字母"和"只能輸入數(shù)字和字母"的三種輸入限制,這樣就可以精確控制用戶輸入的內(nèi)容范圍,讓"用戶永遠沒有辦法輸入限定的內(nèi)容范圍之外的其他內(nèi)容",也就是"用戶即使想犯錯誤也沒有機會",這種限制控件輸入的方式給了我很大的啟發(fā),如果在web項目中也能做到這樣的精確控制,那么就可以避免因為一些非法輸入而造成系統(tǒng)出錯,既然WinForm里面可以實現(xiàn)這樣的控件,那么web項目里面也應該有辦法去實現(xiàn)類似這樣的控件或者能夠做到類似的效果,經(jīng)過自己的一番研究和查找資料,終于做到了類似的效果,針對"只能輸入數(shù)字"、"只能輸入字母"和"只能輸入數(shù)字和字母"的三種輸入限制,我封裝成onlyNum(),onlyAlpha()和onlyNumAlpha()3個Jquery擴展方法,方便復用,由于里面一些JS代碼涉及到了"禁用輸入法,獲取剪切板的內(nèi)容",而"禁用輸入法,獲取剪切板的內(nèi)容"只能在IE瀏覽器下才有效,對于別的瀏覽器是無效的,因此這三個方法只適合在IE瀏覽器下使用才有效,三個方法的代碼如下:
    代碼如下:
    一、限制只能輸入數(shù)字
    // ----------------------------------------------------------------------
     // <summary>
     // 限制只能輸入數(shù)字
     // </summary>
     // ----------------------------------------------------------------------
     $.fn.onlyNum = function () {
       $(this).keypress(function (event) {
         var eventObj = event || e;
         var keyCode = eventObj.keyCode || eventObj.which;
         if ((keyCode >= && keyCode <= ))
           return true;
         else
           return false;
       }).focus(function () {
       //禁用輸入法
         this.style.imeMode = 'disabled';
       }).bind("paste", function () {
       //獲取剪切板的內(nèi)容
         var clipboard = window.clipboardData.getData("Text");
         if (/^\d+$/.test(clipboard))
           return true;
         else
           return false;
       });
     };
    二、限制只能輸入字母
    // ----------------------------------------------------------------------
     // <summary>
     // 限制只能輸入字母
     // </summary>
     // ----------------------------------------------------------------------
     $.fn.onlyAlpha = function () {
       $(this).keypress(function (event) {
         var eventObj = event || e;
         var keyCode = eventObj.keyCode || eventObj.which;
         if ((keyCode >= && keyCode <= ) || (keyCode >= && keyCode <= ))
           return true;
         else
           return false;
       }).focus(function () {
         this.style.imeMode = 'disabled';
       }).bind("paste", function () {
         var clipboard = window.clipboardData.getData("Text");
         if (/^[a-zA-Z]+$/.test(clipboard))
           return true;
         else
           return false;
       });
     };
    三、 限制只能輸入數(shù)字和字母
    // ----------------------------------------------------------------------
    // <summary>
    // 限制只能輸入數(shù)字和字母
    // </summary>
    // ----------------------------------------------------------------------
    $.fn.onlyNumAlpha = function () {
      $(this).keypress(function (event) {
        var eventObj = event || e;
        var keyCode = eventObj.keyCode || eventObj.which;
        if ((keyCode >= && keyCode <= ) || (keyCode >= && keyCode <= ) || (keyCode >= && keyCode <= ))
          return true;
        else
          return false;
      }).focus(function () {
        this.style.imeMode = 'disabled';
      }).bind("paste", function () {
        var clipboard = window.clipboardData.getData("Text");
        if (/^(\d|[a-zA-Z])+$/.test(clipboard))
          return true;
        else
          return false;
      });
    };
    使用方法:首先在畫面加載完成之后編寫如下的JS腳本
    $(function () {
      // 限制使用了onlyNum類樣式的控件只能輸入數(shù)字
      $(".onlyNum").onlyNum();
      //限制使用了onlyAlpha類樣式的控件只能輸入字母
      $(".onlyAlpha").onlyAlpha();
      // 限制使用了onlyNumAlpha類樣式的控件只能輸入數(shù)字和字母
      $(".onlyNumAlpha").onlyNumAlpha();
     });
    對需要做輸入控制的控件設置class樣式
    <ul>
        <li>只能輸入數(shù)字:<input type="text" /></li>
        <li>只能輸入字母:<input type="text" /></li>
        <li>只能輸入數(shù)字和字母:<input type="text" /></li>
    </ul>
    這樣畫面上凡是設置了class="onlyNum"的控件就只能輸入數(shù)字,設置了class="onlyAlpha"的控件只能輸入字母,設置了class="onlyNumAlpha"的控件只能輸入數(shù)字和字母,通過這種方式就可以限制了用戶的輸入范圍,避免用戶進行一些非法的輸入。
    以上所述是小編給大家介紹的jQuery控制文本框只能輸入數(shù)字和字母及使用方法,希望對大家有所幫助