如何使用jQuery获取已回答/未回答选项的编号

How to get number of option is answered/not answered using jQuery?

本文关键字:选项 编号 何使用 获取 jQuery      更新时间:2023-09-26

在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">

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

$('#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()函数中的代码可能会根据您未共享的现有代码进行更改;-)。

u可以做一些类似的事情。。

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对象,即ques-