Javascript 如何使用jQuery获取已回答/未回答选项的数量?
在android phonegap应用程序中,我在Javascript 如何使用jQuery获取已回答/未回答选项的数量?,javascript,jquery,cordova,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++) {
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());
});
}
动态div的:从本地数据库检索值
功能列表(结果){
对于(i=0;i”+results.rows.item(i).ques+”“+”
);
var optiontypearray=新数组();
var arr=results.rows.item(i).选项;
var optiontypearray=arr.split(“”);
对于(var j=0;ju),可以做如下操作
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
}
}
var-qanswered;
对于(j=0;j
btn一个接一个地获取输入的jquery对象,这是当您单击submit按钮时发生的情况
$('#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]);
});
$('#提交')。单击(函数(){
var questionsAnswered=questionsNotAnswered=0
var=newarray();
$('li').removeAttr('style').each(函数(i){
if($(this).children('input:checked')。长度>0){
var ans=“”;
$(this).children('input:checked')。每个(函数(){
ans+=$(this.val()+',';
});
arrQuestions[questionsAnswered]=新数组($(this).attr('id'),ans);
问题回答++;
}else if($(this.attr('class')='required'&&$(this.children('input:checked'))。length==0){
$(this.css({border:'1px solid red'});
问题回答++;
警报($(this.clone().children('span').remove().end().text());
}
});
$('div#finalResults').html(“已回答的问题:+questionsansweed+”
未回答的问题:+questionsNotAnswered);
});
$。每个(问题、函数(){
$('div#finalResults')。追加(“
Q:+this[0]+”A:+this[1]);
});
演示。
请注意,list()函数中的代码可能会根据您未共享的现有代码进行更改;-).您能分享一些代码来了解情况吗?谢谢您的回答。如何获取有多少问题得到了回答和没有回答。请帮助我。提前谢谢。您能分享与问答相关的html吗?在html中,我只声明了div,使用div id append question and选项。请注意,元素的id对于同一页上的所有元素。如果必须提供元素id,则应提供该页上任何其他元素都不会使用的元素。感谢您的回复。请在代码中解释这些{qusetion[j],ques.questionid,btn=$(),btn[0]}。我不明白。请指导我。提前感谢btn是问题输入的jquery对象。它逐个查看特定问题的选项,并查看是否检查(回答)输入。我已将此代码放入logcat错误:btn[0]是未定义的,如何解决这个问题不要直接使用android:P首先编写js代码,并在普通浏览器中进行测试。使用web inspector/firebug进行调试,然后将其放在android中。你无法在androiduse fiddler/charles中调试js来调试本地html js,在browserThankyou verymuch中。它工作正常。我还有一个疑问,如何用corr解决问题响应存储到localdatabaseHey priya,查看更新的JSFIDLE url,如果您喜欢,请不要忘记更新答案:-)查看新的FIDLE url。我在list()中做了一些更改
函数和结果
数组。@priya:您可以检查哪个li
标记具有required标志。请在此处查看:@priya:很高兴为您提供帮助。您介意投票表决答案吗:-)
$('#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]);
});