获取文本区域的长度

时间:2018-05-05 07:55:55

标签: javascript jquery

我想在textarea下面添加书面文字的长度。

为此,我定义了一个JSONArray jsonarray = new JSONArray(response.toString()); for (int i = 0; i < jsonarray.length(); i++) { JSONObject jsonobject = jsonarray.getJSONObject(i); String name = jsonobject.getString("emo"); } 元素来写我的角色。

但是,我目前收到以下错误:

  

未捕获的ReferenceError:未定义len

在下面找到我可行的例子:

span
$(".form-control.description").keyup(this.countCharacters.bind(this))


function countCharacters() {
  len = $(".form-control.rigDesc").val().length
  $(".remainChar").html("#" + len);
}

有关如何捕获textarea字段长度的任何建议吗?

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

您遗失了description中的课程textarea,因为您在$(".form-control.description")事件中使用了keyup,该事件寻找的课程form-controldescription因此您需要在description中添加textarea课程。

$(".form-control.description").keyup(this.countCharacters.bind(this))

function countCharacters() {
  len = $(".form-control.rigDesc").val().length
  $(".remainChar").html("#" + len);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="form-group row" align="left">
  <div class="col-7">
    <textarea class="form-control description rigDesc" rows="4" id="comment" placeholder="Describe..."></textarea>
    <span class="remainChar"></span>
  </div>
</div>

为了更准确并防止出现意外错误,您可以使用$("textarea.form-control.description")确保keyup事件仅适用于textarea类和form-control description

$("textarea.form-control.description").keyup(this.countCharacters.bind(this))

function countCharacters() {
  len = $(".form-control.rigDesc").val().length
  $(".remainChar").html("#" + len);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="form-group row" align="left">
  <div class="col-7">
    <textarea class="form-control description rigDesc" rows="4" id="comment" placeholder="Describe..."></textarea>
    <span class="remainChar"></span>
  </div>
</div>

答案 1 :(得分:1)

您的代码将keyup绑定到错误的选择器。我已经解决了这个问题,并确保len是一个本地而非全局变量。见下文:

$(".form-control").keyup(this.countCharacters.bind(this))


function countCharacters() {
  var len = $(".form-control.rigDesc").val().length;
  $(".remainChar").html("#" + len);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="form-group row" align="left">
  <div class="col-7">
    <textarea class="form-control rigDesc" rows="4" id="comment" placeholder="Describe..."></textarea>
    <span class="remainChar"></span>
  </div>
</div>