1

这是HTML:

<form>
   <textarea id="input1"></textarea>
   <textarea id="input2"></textarea>
   <span></span>
</form>

js:

$("#input2").keyup{
 var a = document.getElementById("input1").length;
 var b = document.getElementById("input2").length;
 var c=a+b;
  $("span").html(c);
}

每次 'c' 达到多个 140 时,我需要将它添加到 'b',我尝试这样做:

while(c%140 == 0){
   c=c+b;
}

在第 140 个 keyup 时,是的,它添加了,但是下一个 keyup(141th) 等等 'c' 回到了 notihng 添加的值。如何正确执行此操作?

谢谢。

4

1 回答 1

2

我不能确定我是否正确阅读了这个问题,但是如果我的代码的 jsfiddle是一个近似值,那么解决方案可能就像varc添加a+b. 如果你想c拥有一个持久值,你需要它的范围在keyup事件处理程序之外。

从小提琴:

$(function() {
   var c = 0;

   $("#input2").keyup( function() {
       var a = $("#input1").val().length;
       var b = $("#input2").val().length;
       c=a+b;
       if(c%140 == 0){
           c=c+b;
       }
       $("span").html(b);
   });

});

请注意,这是一个if,而不是while。如果它应该是一个while循环,那是一个很容易做出的改变。

更新

我想我知道这里发生了什么。您想要跟踪多页 SMS 消息的总字符数。更新后的jsfiddle回答了你不会出来问的问题。

这是新代码:

$(function() {

  $("#input2, #input1").keyup( function() {
    var a = $("#input1").val().length;
    var b = $("#input2").val().length;
    c=a+b;

    c+=Math.floor(c/140)*b;

    $("span").html(c); 
  });

});

现在,这当然假设 input1 保存您的实际消息,而 input2 保存一些需要在每个页面上显示的文本。如果情况相反,或者此代码有其他用途,请告诉我。

于 2013-02-28T08:27:58.297 回答