How to display the number of starting SMS as 1 if characters = <160?

I have jquery code that I want to show the current number of characters being entered, the remaining characters, as well as a number like SMS. a value from 0 to 160 is 1 SMS, any value higher than this and less than 321 is an SMS message. a value above 160 prints 2 cm in the document, but the initial value never changes to 1. It is always zero. How do I understand this? Here is the jquery code:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {

    var text_max = 481;

    $('#textarea_feedback').html(text_max + ' characters remaining');

    $('#textarea1').keyup(function() {
    	
        var text_length = $('#textarea1').val().length;

        var cur = text_length;

        var text_remaining = text_max - text_length;
        

        $('#textarea_feedback').html(text_remaining + ' characters remaining');

        $('#textarea_cur').html(cur + ' current characters');

         var sms = 1;

         $('#smsNum').html(sms + ' SMS');
          
          if(cur <= 160) {

    	    $('#smsNum').html(sms);

          }if(cur >= 161) {

    	    $('#smsNum').html(sms += 1 );

         }else{

         	$('#smsNum').html(sms -= 1 );
         }

    });

});

</script>

The HTML code:

<span id="textarea_cur"></span>

 <div id="smsNum"> SMS </div>

   <textarea id="textarea1" rows="5" cols="40" maxlength="482" >

   </textarea>

 <span id="textarea_feedback">

</span>
      

+3


source share


4 answers


if(cur >= 161) { $('#smsNum').html(sms += 1 ); }

this will only give you 2cm no matter how much you increase the number of characters after 160, because you are not calculating the number of sms, just make your sms = cur/160



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {

    var text_max = 481;

    $('#textarea_feedback').html(text_max + ' characters remaining');

    $('#textarea1').keyup(function() {
    	
        var text_length = $('#textarea1').val().length;

        var cur = text_length;

        var text_remaining = text_max - text_length;
        

        $('#textarea_feedback').html(text_remaining + ' characters remaining');

        $('#textarea_cur').html(cur + ' current characters');

         var sms = parseInt(cur/160);

         $('#smsNum').html(sms + ' SMS');


    });

});

</script>

The HTML code:

<span id="textarea_cur"></span>

 <div id="smsNum"> SMS </div>

   <textarea id="textarea1" rows="5" cols="40" maxlength="482" >

   </textarea>

 <span id="textarea_feedback">

</span>
      

+1


source


You can use Math.ceil

division by 160

.

sms = Math.ceil(cur / 160)

      



$(document).ready(function() {
    var text_max = 481;
    $('#textarea_feedback').html(text_max + ' characters remaining');
    $('#textarea1').keyup(function() {
        var text_length = $('#textarea1').val().length,
            cur = text_length,
            sms = Math.ceil(cur / 160),
            text_remaining = text_max - text_length;

        $('#textarea_feedback').html(text_remaining + ' characters remaining');
        $('#textarea_cur').html(cur + ' current characters');
        $('#smsNum').html(sms + ' SMS');
    });
});
      

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="textarea_cur"></span>
<div id="smsNum"> SMS </div>
<textarea id="textarea1" rows="5" cols="40" maxlength="482"></textarea>
<span id="textarea_feedback"></span>
      

+1


source


$(document).ready(function() {

    var text_max = 481;

    $('#textarea_feedback').html(text_max + ' characters remaining');

    $('#textarea1').on('input',function() {
    	
        var text_length = $('#textarea1').val().length;

        var cur = text_length;

        var text_remaining = text_max - text_length;
        

        $('#textarea_feedback').html(text_remaining + ' characters remaining');

        $('#textarea_cur').html(cur + ' current characters');

         var sms = 1;

         $('#smsNum').html(sms + ' SMS');
          
          if(cur <= 10) {

    	    $('#smsNum').html(sms + ' SMS');

          }
          
          if(cur >= 11) {

    	    $('#smsNum').html(sms += 1 );

         }

    });

});
      

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script type="text/javascript">

</script>

The HTML code:

<span id="textarea_cur"></span>

 <div id="smsNum"> SMS </div>

   <textarea id="textarea1" rows="5" cols="40" maxlength="482" >

   </textarea>

 <span id="textarea_feedback">

</span>
      

try this it works

0


source


$(document).ready(function() {

var text_max = 481;
$('#textarea1').val('');
$('#textarea_feedback').html(text_max + ' characters remaining');

var sms = 0;

$('#smsNum').html(sms + ' SMS');

$('#textarea1').keyup(function() {
    
    var text_length = $('#textarea1').val().length;
    var text_remaining = text_max - text_length;
    if ( text_length > 0 ) {

        if ( text_length > 160 ) {
            sms = 2;
        } else {
            sms = 1;
        }            

    } else {
        sms = 0;
    }

    $('#textarea_feedback').html(text_remaining + ' characters remaining');
    $('#textarea_cur').html(text_length + ' current characters');
    $('#smsNum').html(sms);

});

});
      

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
The HTML code:
<span id="textarea_cur"></span>

<div id="smsNum"> SMS </div>

<textarea id="textarea1" rows="5" cols="40" maxlength="482">

   </textarea>

<span id="textarea_feedback">

</span>
      

0


source







All Articles