jQuery Mobileを使用してテキストエリアでmax-lengthを使用しようとしていますが、奇妙な問題が発生しました。問題は、javascriptでfalseが返されるかどうかに関係なく、textareaによって15から60までのテキストを入力できなくなることです。文字が早すぎます。
maxLengthプロパティは1150に設定されており、1090〜1115文字を入力できます。これが私がテストした唯一の方法であるため、コピーアンドペーストを使用する機能であるかどうかはわかりませんが、奇妙に思えます。
コードは次のとおりです。
$(document).delegate('#main','pageinit',function() {
$('#title,#description').keypress,function(e){
var cur=$(this).val().length,
max=$(this).prop('maxLength'), rem=max-cur,
ch=$(this).parents('.ui-bar').find('.char-rem'),
red=$(this).parents('.ui-bar').find('.char-rem.red'),
green=$(this).parents('.ui-bar').find('.char-rem.green');
ch.children('span').html(rem);
if(rem <= 10)
{
green.removeClass('green')
ch.addClass('red');
} else {
red.removeClass('red')
ch.addClass('green')
}
if(rem == 0)
{
if(e.which!= 8)
{
return false;
}
}
})
})
毎回何が起こるかというと、残りの文字数が少なくなりますが、ゼロより多くなり、入力できなくなります。以下を削除しても同じことが起こります。
if(rem == 0)
{
if(e.which!= 8)
{
return false;
}
}
keydownとkeyup、およびpageinitの内側または外側でこれを試し、その他のさまざまな調整を行い、textarea textLengthプロパティを使用してtextareaの文字数を確認しましたが、毎回結果は同じです。
現在、Chromiumを使用してこれをテストしており、他の場所ではテストしていませんが、足りないものがあるかどうかを確認したいと思います。
手がかりはありますか?