我有一个网站,我目前可以告诉我们从各种下拉菜单中选择了多少答案。现在我希望能够计算textarea标签内的注释。对于我基本上拥有的东西,我有一个小提琴。
https://jsfiddle.net/josephmckenzie/Lr1evv3v/3/
当您点击评论链接时,它会在当前下拉菜单下打开一个带有评论框的手风琴,一旦输入,它们将继续下一个问题。它们都应该计数(下拉计数器已经工作),如果与菜单选择一起输入注释,注释计数器也应该计数。
<div class="QuestionsAnswered">
summary<br>
Total = <span class="cnt-total">0</span> <br>
</div>
<select name="firstone">
<option value="">Choose One</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="na">N/A</option>
</select>
<div class="accordion">Comment</div>
<div class="panel">
<textarea name="comment<%=index%>" rows="4" cols="15"></textarea>
</div>
<select name="secondone">
<option value="">Choose One</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="na">N/A</option>
</select>
js
$('select').change(function() {
// get all selects
var allSelects = $('select')
var total = 0;
// for each select increase count
$.each(allSelects, function(i, s) {
// increase count
if($(s).val() == 'Yes' ) { total++; }
if($(s).val() == 'No') { total++; }
if($(s).val() == 'na') { total++; }
});
$('.cnt-total').text(total);
});
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function(){
this.classList.toggle("active");
this.nextElementSibling.classList.toggle("show");
}
};
我已经尝试将选择更改为文本区域,将.val!=更改为空白字符串和其他一些内容但是我来找你堆栈
答案 0 :(得分:1)
确保'total'是一个全局变量,所以请从$(。'select')中取出.change(function())(https://jsfiddle.net/Lr1evv3v/7/)。
$("#the_answer").on("blur", function(){
$(this).val() ? total++ : total--;
$('.cnt-total').text(total); //to update the total text
});