2016-05-26 4 views
0

私は、現在、さまざまなドロップダウンメニューからの回答の数を知ることができるウェブサイトを持っています。今、私はtextareaタグ内にあるコメントを数えたいと思っています。私は基本的に何を持っているのか、私はjsのバイブルを持っています。私のウェブサイトに入力されたコメントの数を数えるには

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> 

私は空の文字列といくつか他のものに=!テキストエリアと.valに選択を変更しようとしましたが、私はあなたに来る悲しいかな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"); 
} 
}; 

スタック
+0

jQueryを 'select'変更に使用したが、コメントをクリックしていない理由はありますか? – jwatts1980

+0

あなたのアプリケーションのどこかでRubyを使用しているだけでは、Rubyの質問に疑問を投げかけません。 Rubyを例のコードで使用した場合、それは適切ですが、それはそうではありませんし、気晴らしとして機能します。 –

+0

@ jwatts1980いいえ、私はそれが問題であることができなかったことを認識していませんでした。ドロップダウンはカウントダウンしません。 –

答えて

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 
}); 
+0

私は本当にこれをリンクしていますが、最初のドロップダウンを選択した後、私のものですが、その問題を解決するのに役立つかもしれません。 –

+0

さて、 "$ .each(allSelects、function(i、s){"は、ドロップダウン値のいずれかが変更されるたびにすべてのドロップダウンを繰り返しているので、ドロップダウンの値が既に選択されている場合、 – rsn

+0

ええ、それは理にかなっていますが、私が意味するものは、私は最初の1つのカウントが1であることを選択した後にコメント数を入力します2次に私はそれが4にジャンプする2番目のドロップダウンに行く –

関連する問題