2016-01-28 1 views
0

Я использую счетчик sms, чтобы показать оставшееся число символов и количество смс, но я хочу сделать небольшую модификацию на этом, я хочу, чтобы изменить максимальный оставшийся символ от 160 до 145, sms> 1Как изменить jquery sms counter

вот мой код, который всегда насчитывает 160 символов.

<textarea name="message" value="" id="message"></textarea> 
<p> 
<span id="remaining">160 characters remaining</span> 
<span id="messages">1 message(s)</span> 
</p> 

document).ready(function(){ 
    var $remaining = $('#remaining'), 
    $messages = $remaining.next(); 

    $('#message').keyup(function(){ 
     var chars = this.value.length, 
     messages = Math.ceil(chars/160), 
     remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 

     $remaining.text(remaining + ' characters remaining'); 
     $messages.text(messages + ' message(s)'); 
    }); 
}); 
+0

так что теперь вы ничего не сделали, чтобы изменить оставшийся символ на 145? –

+0

Я пробовал, если (сообщения> 1) { Осталось = сообщения * 145 - (символы% (сообщения * 145) || сообщения * 145); } –

+0

этим кодом будет 145 символов для первого сообщения слишком –

ответ

1

Я думаю, вам нужно код ниже

if(messages>1) 
    { 



    remaining = (((messages-1) * 145)+160 - chars); 


    } 

Jsfiddle

+0

после достижения предела 160 для сообщения 1, он показывает -144/2, а знак возврата увеличивается отрицательно, например -202/2 –

+0

Я отредактировал код 1 мин. назад .. ты это проверил? –

+0

Да, я проверил его прямо сейчас, вот еще одна проблема! sms оставшийся символ снова увеличивается отрицательно после сообщения 2, а сообщение no не увеличивается до сообщения 3 -4/2 –

1

Это будет работать, я проверил это ....

$(document).ready(function(){ 
var $remaining = $('#remaining'), 
$messages = $remaining.next(); 

$('#message').keyup(function(){ 
    var chars = this.value.length; 
    if(chars <= 305){ 
    var messages = Math.ceil(chars/145); 
    var remaining = messages * 145 - (chars % (messages * 145) || messages * 145); 
    }  
    else if(chars <= 160){ 
    var messages = Math.ceil(chars/160); 
    var remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 
    } 
    else{ 
    var messages = Math.ceil(chars/145); 
    var remaining = messages * 145 - (chars % (messages * 145) || messages * 145); 
    } 
    $remaining.text(remaining + ' characters remaining'); 
    $messages.text(messages + ' message(s)'); 
}); 
}); 
+0

Спасибо @Igor Birjukov , он отлично работает! –

+0

, когда я удаляю символы, нажимая назад, он всегда держится в 144! –

0

К сожалению об этом. Используйте этот, я закодировал его для вас. Этот код более точен, чем последний.

$(document).ready(function(){ 
var $remaining = $('#remaining'), 
$messages = $remaining.next(); 
var arr = [0, 160, 305, 450, 595, 740, 885, 1030, 1175, 1320, 1465, 1610, 1755, 1900]; 
$('#message').keyup(function(){ 
var chars = this.value.length;   
for(var i = 0;i<arr.length;i++){ 
    if(chars >=arr[i]){ 
     $messages.text((i+1) + ' message(s)');   
     $remaining.text((arr[(i+1)]-chars) + ' characters remaining'); 
    } 
} 
}); 
}); 
Смежные вопросы