2013-08-14 1 views
-1

в моем проекте имеют JQuery Mobile текстовое поле под названием «тема» на одной страниценажатие клавиши, KeyUp или KeyDown работают только на первом кольце в JQM

У меня есть этот скрипт я использую для подсчета символов, введенных в текстовое поле , но этот скрипт просто дает мне результат по первому нажатию клавиши. другой - нет.

$(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)); 
     } 
    }); 
}); 

example in action

Что может происходить?

+0

Когда вы делаете '$ (this) .length', это означает, что он проверит длину объекта, которая всегда равна 1. Вам нужно сделать $ $ (this) .val(). Length'. – deepakb

ответ

0

необходимо изменить эту строку

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

См Demo

+0

спасибо. глупая ошибка, но это иногда происходит после многократного ввода =) –

0

Вы неправильно используете длину ввода пользователя. Используйте:

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

Здесь рабочий demo.

2

вам нужно использовать Вэл(). Длина

проверить обновление скрипку здесь

$("#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/