2017-08-04 3 views
3

私は現在入力されている文字数、残りの文字数、そして例えばSMSの数を表示したいjqueryコードを持っています。 0から160の間の値は1 SMS、それより上の任意の値、それより少ない321はSMSです。 160を超える値は2 smsを文書に出力しますが、初期値は決して1に変わりません。これは常にゼロです。どのように私はこの権利を得るのですか?ここではjqueryのコードは次のとおりです。文字数が160未満の場合、SMSのイニシャルの数を1に表示するにはどうすればよいですか?

<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() { 
 
    \t 
 
     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) { 
 

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

 
      }if(cur >= 161) { 
 

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

 
     }else{ 
 

 
      \t $('#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>

+0

変更コード.. (CUR <= 160){ \t $( '#1 smsNum')HTML(SMS)の場合。 } else if(cur> = 161){//ここでifの代わりにelseを追加しました。 \t $( '#smsNum').html(sms + = 1); else { \t $( '#smsNum').html(sms - = 1); } – Sanil

答えて

1

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

これだけに関係なく、あなたがSMSの数を計算していないので、あなたは、160の後に文字カウントを増やすどのくらいあなたに2つのSMSを与えないだろう、ちょうどあなたの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() { 
 
    \t 
 
     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>
を作ります

+0

ありがとうございます@Dijあなたはそれをしました! – user1740774

1

160で除算のMath.ceilを使用できます。

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>

+0

ありがとう@ニナこの完璧! – user1740774

+0

@ user1740774、こちらをご覧ください:https://stackoverflow.com/help/someone-answers –

0

$(document).ready(function() { 
 

 
    var text_max = 481; 
 

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

 
    $('#textarea1').on('input',function() { 
 
    \t 
 
     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) { 
 

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

 
      } 
 
      
 
      if(cur >= 11) { 
 

 
    \t  $('#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>

それが仕事

0

$(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>
だこれを試してみてください210

関連する問題