-1

私のプロジェクトでは、1 ページに「トピック」と呼ばれる jQuery Mobile テキストエリアがあります。

テキストエリアに入力された文字をカウントするために使用しているこのスクリプトがありますが、このスクリプトは最初のキーストロークで結果を返すだけです。もう一方はしません。

$(document).delegate("#topicDialog", "pageinit", function() {
$("#topic").keyup(function(e) {
        var tam = $(this).length;

        if (tam <= 61700){
            $("#maxCarac").html(tam +" typed characters. The maximum allowed is 61700");
        } else {
            alert("You have reached the maximum text size.\nPlease break your text into more than one topic.");
            $("#topic").val($("#topic").substring(61700));
        }
    });
});

実際の例

何が起こっている可能性がありますか?

4

3 に答える 3

2

val().length を使用する必要があります

ここで更新フィドルを確認してください

$("#topic").keyup(function(e) {
        var tam = parseInt($(this).val().length);

        if (tam <= 61700){
            $("#maxCarac").html(tam +" typed characters. The maximum allowed is 61700");
        } else {
            alert("You have reached the maximum text size.\nPlease break your text into more than one topic.");
            $("#topic").val($("#topic").substring(61700));
        }
    });

http://jsfiddle.net/manishkumarshr/zdEzk/1/

于 2013-08-14T12:29:16.973 に答える
0

ユーザー入力の長さを誤って取得しています。これを使って:

var tam = $(this).val().length;

ここに動作デモがあります。

于 2013-08-14T12:28:35.733 に答える
0

この行を変更する必要があります

var tam = $(this).val().length;

デモを見る

于 2013-08-14T12:31:05.277 に答える