2017-06-06 2 views
0

単語の文字数に制限を設けようとしています。私は誰かが15文字以上を入力している場合、私は見つけることに成功しています。私は今メッセージを表示しています。私がやりたいことは、15文字以上入力すると、Javaスクリプトはアラートを表示し、その単語の最初の14文字を残すすべての文字を削除します。私はいくつかの役に立つ機能を見つけようとしましたが、有用なものは何も見つかりません ユーザーがまだ入力しているときに、文字制限を動的にチェックしたいと思います。 私のコードは半完成ですが、1つの瑕疵があります。カウントが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

関連する問題