1

テキストフィールドの単語数を制限するためにいくつかのjqueryコードを改造していますが、値を取得する方法がわかりません。コードは次のとおりです。

    <script>

var $limitWords = 20;
var $wordCount = $('#count').val();

    $(document).ready(function(){
      $("#edit-field-message-0-value").keyup(function() {
         $('#count').html($('#edit-field-message-0-value').val().split(/\b[\s,\.-:;]*/).length);

      if ($wordCount > $limitWords) {
      $('#edit-field-message-0-value').addClass('error');
      } else {
      $('#edit-field-message-0-value').addClass('not-error');
      }
      });
    });

</script>

具体的には、現在の値を返すために「$wordCount」は何に等しい必要がありますか?

簡単なはずなのに理解できないようです。

何か案は?

ありがとう、スコット

4

5 に答える 5

3

$wordCount 変数がよくわかりません。次のことをしようとしている可能性があると思います。

$("#edit-field-message-0-value").keyup(function() {
    var $this = $(this);
    var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length;

    if (wordcount > $limitWords) {
        $this.addClass('error');
    } else {
        $this.addClass('not-error');
    } 
});

また、現在のカウントを保存したいと仮定します。

$("#edit-field-message-0-value").keyup(function() {
    var $this = $(this);
    var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length;
    if (wordcount > $limitWords) {
        $('#count').html($limitWords);
        $this.addClass('error');
    } else {
        $('#count').html(wordcount);
        $this.addClass('not-error');
    } 
});
于 2009-10-16T17:45:41.963 に答える
2

次のスクリプトでは、 を超える入力はできませんlimitWord

var limitWord = 20;
var maxchars = 0;
$("#edit-field-message-0-value").keyup(function() {
   $this = $(this);
   var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length - 1;
   if (wordcount < limitWord) {
      chars = $this.val().length;
    }
   else{
    var text = $(this).val();
    var new_text = text.substr(0,chars);
    $(this).val(new_text);
   }
});
于 2012-08-31T12:25:57.187 に答える
2

これは上記を拡張したものであり、Pritam からの素晴らしい回答です。動作が非常に奇妙で変更されていることがわかりました

var wordcount = $this.val().split(/\b[\s,.-:;]*/).length - 1;

に:

var wordcount = jQuery.trim($this.val()).split(/\b[\s,.-:;]*/).length;

これにより、風変わりな単語数の動作が並べ替えられます (フィードバックのためにユーザーに値を表示している場合)。

于 2012-10-26T16:03:50.190 に答える
1

私があなたを正しく理解していれば、キープレスイベントのイベントハンドラーなど、入力/テキストエリアのイベントハンドラー内に値を取得するコードを配置する必要があります。このようにして、ユーザーが入力/テキストエリアにテキストを入力している間、単語数を制限できます。

于 2009-10-16T17:45:27.923 に答える
0

「#count」要素が何かわからないので、html(...) を使用して値を設定するメソッドからキューを取り出しました。したがって、これは機能するはずです:

var $wordCount = $('#count').html();
于 2009-10-16T17:44:41.590 に答える