我希望能够根据用户输入的内容更改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的内容都会出现。
我对此很新,并且找不到适合我的解决方案。
答案 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;
}
}