javascript - js輸入框限定字?jǐn)?shù)問(wèn)題
問(wèn)題描述
js輸入框限定輸入框的字?jǐn)?shù),以下代碼
<input type=’text’ onkeyup='checkNumber($(this))'>function checkNumber($this){ let val=$this.val(); if(val.length > 10 ){alert(’字?jǐn)?shù)超過(guò)10’); }}
在實(shí)際過(guò)程中,發(fā)現(xiàn)以下問(wèn)題,如圖:
在輸入法中是,先顯示字母,再將字母拼音轉(zhuǎn)換成漢字。故可能在輸入的時(shí)候,字母加漢字已超過(guò)限定的字?jǐn)?shù),該如何解決?
問(wèn)題解答
回答1:<input type='text' maxlength='10'>回答2:
oninput='checkNumber($(this))'
回答3:你不用alert,用輸入框后面加紅框的形式就可以了
回答4:我們?cè)O(shè)想下,input也輸入全英文的、或者中文,需要限定長(zhǎng)度小于10,那么maxlength='10'是需要的,checkNumber函數(shù)然后判斷是否input有存在中文,有的話(huà)判斷最后字符是否是英文。如果沒(méi)有中文說(shuō)明說(shuō)純英文就提示,這樣方案不足之處有中文和英文一起存在不好判斷。
回答5:下面這個(gè)例子,不知會(huì)不會(huì)幫到你
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>input 事件兼容處理以及中文輸入法優(yōu)化</title></head><body> <input type=’text’> <script>var input = document.querySelector(’input’);var isLock = false;//當(dāng)瀏覽器有非直接的文字輸入時(shí), compositionstart事件會(huì)以同步模式觸發(fā).input.addEventListener(’compositionstart’, function(){ isLock = true;})//當(dāng)瀏覽器是直接的文字輸入時(shí), compositionend會(huì)以同步模式觸發(fā).input.addEventListener(’compositionend’, function(){ isLock = false;});input.addEventListener(’input’,function(e){ if(!isLock)console.log(this.value);}); </script></body></html>回答6:
onkeyup事件換成onblur事件解決。
相關(guān)文章:
1. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上2. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?3. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問(wèn)題?4. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處5. Python爬蟲(chóng)如何爬取span和span中間的內(nèi)容并分別存入字典里?6. 視頻文件不能播放,怎么辦?7. mysql 查詢(xún)身份證號(hào)字段值有效的數(shù)據(jù)8. python - 爬蟲(chóng)模擬登錄后,爬取csdn后臺(tái)文章列表遇到的問(wèn)題9. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)10. 黑客 - Python模塊安全權(quán)限
