Textarea值等于“”

时间:2017-09-13 11:35:00

标签: javascript jquery html textarea

我希望能够根据用户输入的内容更改textarea标签内的值。

<div class="form-group">
    <label>Describe what happened</label>
    <textarea id="descriptionReport" form="newReport" placeholder="Describe what happened.." name="description" data-rule-describeEvent="true " cols="5" rows="5" class="form-control" maxlength="255" a></textarea>
</div>

我在剧本中声明了一个变量:

$(document).ready(function () {
   var vm = {
       movieIds: [],
       ReportDescription: null
  };

然后我将它设置为textarea标签内的值

vm.ReportDescription = document.getElementById("descriptionReport").value;

我总是得到的值等于“”。

我添加了一个验证插件来检查该值是否有效:

$.validator.addMethod("describeEvent", function () {
            return vm.ReportDescription !== "";
        }, "Please describe what happened.");

句子“请描述发生的事情。”无论我在我的表格中输入textarea的内容都会出现。

我对此很新,并且找不到适合我的解决方案。

1 个答案:

答案 0 :(得分:0)

在您发表评论之后,我认为您只是在读取函数初始化后不会更改vm的值,这就是为什么它保持为空并且您收到“请描述发生了什么”的消息。我不知道您正在使用的插件,但我认为您的ReportDescription始终保持为空,这就是您的问题。

HTML:我已经为你的textarea添加了一个keyup属性。

 <textarea id="descriptionReport" form="newReport" placeholder="Describe what happened.." name="description" data-rule-describeEvent="true " cols="5" rows="5" class="form-control" maxlength="255" onkeyup="applyChanges()"></textarea>

在您的代码中添加此功能。用户按下某个键后,它会更改vm.ReportDescription的值。

var vm;
$(document).ready(function () {
   vm = {
       movieIds: [],
       ReportDescription: null
  };
});
function applyChanges() { 
      vm.ReportDescription = document.getElementById("descriptionReport").value; 
      if (vm.ReportDescription == ""){
          vm.ReportDescription = null;
      }
}