我用jQuery创建了一个问卷。 每个问题有5个单选按钮。 value = 0,value = 1,value = 2,value = 3,value = 4
如果有人回答什么,我想设置值0。 现在将" NaN"推入我的阵列。我无法找到灵魂。
<div class="tab-pane active" role="tabpanel" id="step1">
<div class="qhead">
<h3>Leadership</h3>
<span class="underline-small"></span>
</div>
<div class="questions">
<!-- Fragen -->
<div class="row">
<h4>Das ist Frage 1</h4>
</div>
<div class="row">
<p>Das ist Frage 1</p>
<label class="radio radio-inline"><input type="radio" name="q1" id="q1" value="0"><i class="input-helper"></i>Nicht aktiv</label>
<label class="radio radio-inline"><input type="radio" name="q1" id="q1" value="1"><i class="input-helper"></i>Schon davon gehört</label>
<label class="radio radio-inline"><input type="radio" name="q1" id="q1" value="2"><i class="input-helper"></i>Manche arbeiten damit</label>
<label class="radio radio-inline"><input type="radio" name="q1" id="q1" value="3"><i class="input-helper"></i>Wird sind sehr gut</label>
<label class="radio radio-inline"><input type="radio" name="q1" id="q1" value="4"><i class="input-helper"></i>Wir setzen Maßstäbe</label>
</div>
<div class="row">
<p>Das ist Frage 2</p>
<label class="radio radio-inline"><input type="radio" name="q2" id="q2" value="0"><i class="input-helper"></i>Nicht aktiv</label>
<label class="radio radio-inline"><input type="radio" name="q2" id="q2" value="1"><i class="input-helper"></i>Schon davon gehört</label>
<label class="radio radio-inline"><input type="radio" name="q2" id="q2" value="2"><i class="input-helper"></i>Manche arbeiten damit</label>
<label class="radio radio-inline"><input type="radio" name="q2" id="q2" value="3"><i class="input-helper"></i>Wird sind sehr gut</label>
<label class="radio radio-inline"><input type="radio" name="q2" id="q2" value="4"><i class="input-helper"></i>Wir setzen Maßstäbe</label>
</div>
<div class="row">
<p>Das ist Frage 3</p>
<label class="radio radio-inline"><input type="radio" name="q3" id="q3" value="0"><i class="input-helper"></i>Nicht aktiv</label>
<label class="radio radio-inline"><input type="radio" name="q3" id="q3" value="1"><i class="input-helper"></i>Schon davon gehört</label>
<label class="radio radio-inline"><input type="radio" name="q3" id="q3" value="2"><i class="input-helper"></i>Manche arbeiten damit</label>
<label class="radio radio-inline"><input type="radio" name="q3" id="q3" value="3"><i class="input-helper"></i>Wird sind sehr gut</label>
<label class="radio radio-inline"><input type="radio" name="q3" id="q3" value="4"><i class="input-helper"></i>Wir setzen Maßstäbe</label>
</div>
<div class="row">
<p>Das ist Frage 1</p>
<label class="radio radio-inline"><input type="radio" name="q4" value="0"><i class="input-helper"></i>Nicht aktiv</label>
<label class="radio radio-inline"><input type="radio" name="q4" value="1"><i class="input-helper"></i>Schon davon gehört</label>
<label class="radio radio-inline"><input type="radio" name="q4" value="2"><i class="input-helper"></i>Manche arbeiten damit</label>
<label class="radio radio-inline"><input type="radio" name="q4" value="3"><i class="input-helper"></i>Wird sind sehr gut</label>
<label class="radio radio-inline"><input type="radio" name="q4" value="4"><i class="input-helper"></i>Wir setzen Maßstäbe</label>
</div>
<!-- Fragen Ende -->
</div>
<ul class="list-inline pull-right padtop">
<li><button type="button" class="btn btn-primary next-step">Speichern und weiter</button></li>
</ul>
$(".done").click(function (e) {
//Count Questions
var step1 = $("#step1 p").length;
var step1a = 1;
var step1e = step1a + step1;
var questionnaire1 = []
for (var i=step1a; i<step1e; ++i ){
var finalVar = "input[name='q"+i+"']:checked";
var varCont = parseInt($(finalVar).val());
questionnaire1.push(varCont);
}
});
示例:结果为[1,4,NaN,3,0] 为了正确的数据,我需要[1,4,0,3,0]
我用if语句尝试过,但这也行不通。
$(".done").click(function (e) {
//Count Questions
var step1 = $("#step1 p").length;
var step1a = 1;
var step1e = step1a + step1;
var questionnaire1 = []
for (var i=step1a; i<step1e; ++i ){
var finalVar = "input[name='q"+i+"']:checked";
if($(finalVar).val() == "NaN")
{questionnaire1.push(0)}
else{questionnaire1.push($(finalVar).val());}
}
});
答案 0 :(得分:0)
你应该遍历每一行(问题)并从中获取选中的单选按钮并使用该值。如果未选中任何内容,请使用0。
$(".done").click(function (e) {
var questionnaire1 = [];
$.each($(".row"),function(x,y){
var c= $(y).find("input[type]:checked");
var v=0;
if(c.length)
{
v=parseInt(c.val());
}
questionnaire1.push(v);
});
console.log(questionnaire1);
});
Here正在运行样本
答案 1 :(得分:0)
你第二次尝试几乎得到了它。你错过了这个事实,.val()
如果没有选择选项而不是null
,则返回"NaN"
。 NaN
只是您拨打parseInt()
失败的结果。
为了适应这种变化:
var val = $(finalVar).val();
if ( val == null) {
questionnaire1.push(0)
} else {
questionnaire1.push( parseInt( val, 10 ) );
}