Translate

2012年3月23日 星期五

javascript inputtext擋住特定字元

     當你希望使用輸入文字及貼上一段文字,能避開某些特殊符號,或許可以參考
這裡範例使用的是 ? 及 & 可以改成任何你想擋的
它們的相對應key值是55及191…

 <script type="text/javascript">
  function RemoveText(obj) {
            var str = obj.val();
            str = String(str).replace("?", "").replace("&", "");
            obj.val(str);
        }     
       $("input[type='text']").bind('paste keydown keyup', function (e) {
            var el = $(this);
            setTimeout(function () { RemoveText($(el)); }, 1);
            if (e.type == 'keyup') {
                eKey = e && (e.which || e.keyCode)
                if (e.shiftKey && (eKey == 55|| eKey == 191)) {
                    alert("禁止輸入特殊符號");
                }
            }
        });
</script>

ascii→http://www.asciitable.com/

ref→http://api.jquery.com/bind/
ref→http://www.w3schools.com/jsref/event_onchange.asp
ref→http://stackoverflow.com/questions/3781142/jquery-or-javascript-how-determine-if-shift-key-being-pressed-while-clicking-an
ref→http://blog.longwin.com.tw/2007/08/javascript_match_replace_method_2007/


另外一開始也想用regex來判定,找到的一些方便網站也註記在此
ref→http://blog.roodo.com/rocksaying/archives/2670695.html
ref→http://www.jb51.net/article/23196.htm
ref→http://blog.miniasp.com/post/2010/04/27/How-to-filter-special-characters-using-NET-Regex.aspx
ref→http://joy0626.pixnet.net/blog/post/25259201
ref→http://www.blueshop.com.tw/board/show.asp?subcde=BRD20050715144115ZUM
ref→http://blog.xuite.net/ron825/enjoy/41475369-javascript%E5%AD%97%E4%B8%B2right%E5%8A%9F%E8%83%BD%E8%88%87left%E5%8A%9F%E8%83%BD


補充→之後發生了一點小問題,是有關輸入法,冏"如果是注音輸入法可能無法順利填入…
另…
加一個方法如下



      function RemoveText(obj) {
          var str = obj.val();
          if (str != "") {
              var aspecil= [" ? ", " & "]; //禁止輸入的符號 ? , &
              var flag = false;
              var j = aSign.length;

              while (j--) {
                  while (str.indexOf( aspecil [j]) >= 0) {
                      flag = true;
                      str = String(str).replace( aspecil [j], "");
                  }
              }

              if (flag) {
                  alert("<%=Resources.Contacts.禁止輸入特殊符號 %>");
              }
              obj.val(str);
          }
      }

      $("input[type='text']").bind('blur paste', function (e) {
          var el = $(this);
          setTimeout(function () { RemoveText($(el)); }, 1);
      });

沒有留言:

張貼留言