如何使用jQuery回答/没有回答选项的数量?

时间:2012-02-16 06:14:02

标签: javascript jquery cordova

在android phonegap应用程序中,我动态地在div中创建了5个或更多带有相应选项(复选框)的问题。每个问题和相应的选项都具有相同的ID。现在,我想知道在单击“提交”按钮时,有多少问题已得到解答/有多少问题未得到解答。

请指导我。提前谢谢。

我的代码是:

for dynamic div: retrive value from local database
function list(results){
for (i = 0; i < results.rows.length; i++) {
                                         $("#poll").append("<li id='"+i+"'>"+results.rows.item(i).ques+"</li>"+"<br/>" );
                                      var optiontypearray  = new Array();
                                      var  arr = results.rows.item(i).option;
                                      var optiontypearray=arr.split(" ");

                                      for(var j=0; j<optiontypearray.length; j++) {
                                       $("#poll").append("<input  id='"+i+"'  name='ckbox' value='"+optiontypearray[j]+"'  type='checkbox'/>"+optiontypearray[j]+"<br/>");
                                      }

                          }
}
for submit  button:get question with respective answer
function submit(){
$answers = $(':checked');
  var $questions=$('li');
 $answers.each(function(index,el) {
 var list1=$(this).attr("id");
 alert("list1:"+list1);
 var val=$('#'+list1).val();
   alert($questions.eq(list1).html() + ' : ' + $(el).val());
});
}

HTML:

<div id="poll">

2 个答案:

答案 0 :(得分:0)

你可以做点什么......

var qanswered;

for( j = 0; j < numberofQuestions; j++){
       qanswered = false;
       ques = questions[j];
          for( k = 0; k < ques.choices.length; k++){
                btn = $('.ui-page-active input#'+k); // k is your choice id whatever way u define it
                      if(btn[0].checked){
                             qanswered = true;
                        }
          }
       if(!qanswered){
            //this question is not answered, do something
       }

}

btn逐个获取问题

的输入的jquery对象

答案 1 :(得分:0)

单击“提交”按钮时会发生这种情况。

$('#submit').click(function () {
    var questionsAnswered = questionsNotAnswered = 0
    var arrQuestions = new Array();
    $('li').removeAttr('style').each (function (i) {
        if ($(this).children('input:checked').length > 0) {
            var ans = '';
            $(this).children('input:checked').each(function () {
               ans+= $(this).val() + ', ';
            });
            arrQuestions[questionsAnswered] = new Array($(this).attr('id'), ans);
            questionsAnswered++;
        } else if ($(this).attr('class') == 'required' && $(this).children('input:checked').length == 0) {
            $(this).css({border : '1px solid red'});
            questionsNotAnswered++;     
            alert($(this).clone().children('span').remove().end().text());
        }
    });    
    $('div#finalResults').html("Questions Answered : " + questionsAnswered + "<br /> Questions Not Answered : " + questionsNotAnswered);
    });
    $.each (arrQuestions, function () {
        $('div#finalResults').append("<br /> Q: " + this[0] + " A: " + this[1]);
    });

演示。 http://jsfiddle.net/tmM76/9/ 请注意,list()函数中的代码可能会根据您未共享的现有代码进行更改;-)。