亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于JS判斷keycode的問題。估計你們都沒遇到過

關于JS判斷keycode的問題。估計你們都沒遇到過

哈士奇WWW 2018-10-19 14:11:23
我想通過JS來禁用鍵盤按下的減號。也就是按減號的時候我return false;但是問題來了。英文減號被我禁掉了,中文減號還是會寫進去。這是我很不解的。 $(document).on("keydown",'.floatNumber ',function(e){          var keynum;        if(window.event) // IE        {            keynum = e.keyCode        }        else if(e.which) // Netscape/Firefox/Opera        {            keynum = e.which        }        //229為中文減號,189為英文減號        if(keynum==229||keynum==189){            return false        }           })跪求大神解決這個問題。輸入框里面按中英文的減號都不讓它輸入
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

這是因為對于一些鍵盤語言有一個占位符的概念,就像你在打中文字。我做了一個GIF動畫,你會看更明白。

https://img1.sycdn.imooc.com//5bfb99410001a0e503440046.jpg

可以看出 229 并非所謂中文減號,只是一個在非一些鍵盤語言上的占位符倒置的值,而且這個值好像在不同瀏覽器上是不一樣的。

但是在輸入中文減號時為什么沒有顯示占位符,那是因為“太快了”,中文的減號在錄入過程中也是占位的。

解決辦法

我認為可以考慮使用正則,比如:

$(document).on("keydown",'.floatNumber ',function(e){    let el = $(this);
    el.val(el.val().replace(/[^.0-9]+/g, ''));
})


查看完整回答
反對 回復 2018-11-26
  • 1 回答
  • 0 關注
  • 577 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號