2017-06-06 56 views
0

我想限制一個字中的字符數。我成功地發現,如果有人正在輸入超過15個字符,我現在正在顯示一條消息。我想要做的是,如果有人輸入多於15個字符... java腳本會顯示一個警報,然後刪除所有字母,並保留該字中的前14個字符。我試圖找到一些有用的功能,但從未發現有用的東西。 我想要在用戶仍然進入時動態檢查字符限制。我的代碼有一半是完整的,但它有一個缺陷。當計數達到超過15時,它顯示消息,顯示警報。現在用戶仍然可以保存一個字中超過15個字符的字符串。希望我解釋一切。感謝所有人,對於每個人都會事先付出一些努力。字符限制在一個字裏面的文本動態

<textarea id="txt" name="area" onclick="checkcharactercount()"></textarea> 


function checkcharactercount(){ 
    document.body.addEventListener('keyup', function(e) { 
     var val = document.getElementById("txt").value; 
     var string = val.split(" "); 
     for(i=0;i<string.length; i++) { 
     len = string[i].length; 
     if (len >= 15) { 
      alert('you have exceeded the maximum number of charaters in a word!!!'); 
      break; 
     } 
     } 
    }); 
} 
+1

爲什麼不直接使用HTML maxlength屬性? '' – webbm

+0

使用'maxlength'屬性或者'val.length'就足夠了,不是嗎? – AymDev

+0

最大長度不工作,當我們試圖找到字count.it只是計算所有字符串的字符長度。意味着如果我把maxlength =「50」。它將包括所有的空間和一切。所以在我的情況下,它不會工作。糾正我,如果我錯了 – Archelese

回答

0

這是否像你想要的工作?

var textArea = document.getElementById('txt'); 
 
textArea.addEventListener('keyup', function() { 
 
    var val = textArea.value; 
 
    var words = val.split(' '); 
 
    for (var i = 0; i < words.length; i++) { 
 
    if (words[i].length > 14) { 
 
     // the word is longer than 14 characters, use only the first 14 
 
     words[i] = words[i].slice(0, 14); 
 
    } 
 
    } 
 
    
 
    // join the words together again and put them into the text area 
 
    textArea.value = words.join(' '); 
 
});
<textarea id="txt" name="area"></textarea>

+0

非常感謝。這是我正在尋找的。看起來像我有很長的路要走在js :) – Archelese