Red*_*kDK 4 javascript jquery if-statement input radio-button
我的调查中有超过 90 个问题。每个问题有 5 个选择。问题是根据数据库信息构建的。
我需要检查是否所有问题都已得到解答,如果其中一个问题没有得到解答,那么应该对此发出警报。
它们都分为单选按钮组,我想使用 jQuery 来检查。
if 语句不起作用,唯一收到警报的想法是:“未检查!”
<div class='aQuestion' id='div1'>
<STRONG>1. </STRONG>
<STRONG>Question</STRONG></br>
<INPUT TYPE='radio' NAME='grp1' VALUE='0'>answer 1</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='1'>answer 2</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='2'>answer 3</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='3'>answer 4</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='4'>answer 5
</div>
<div class='aQuestion' id='div2'>
<STRONG>2. </STRONG>
<STRONG>Question</STRONG></br>
<INPUT TYPE='radio' NAME='grp2' VALUE='0'>answer 1</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='1'>answer 2</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='2'>answer 3</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='3'>answer 4</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='4'>answer 5
</div>
Run Code Online (Sandbox Code Playgroud)
(上面还有8个问题)
<script>
jQuery('#submit').click(function(event)
{
event.preventDefault();
for(i=1;i<=10;i++)
{
var currentGroup = "grp" + i;
if($("input[name=currentGroup]:checked").val())
{
alert(currentGroup + ' is checked!');
}
else
{
alert(currentGroup + ' is NOT checked!');
}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
提前致谢。如果有人知道如何让用户浏览器视图跳转到未回答的问题,那么我也想听听;)
您必须aQuestion使用遍历带有类的每个 div .each(),并且需要使用 来检查元素内部是否检查了任何单选按钮.find()。
尝试,
$('.aQuestion').each(function(){
if($(this).find('input[type="radio"]:checked').length > 0)
{
alert("checked");
}
else
{
alert("not checked");
}
});
Run Code Online (Sandbox Code Playgroud)
正如 mplungjan 建议的那样,您也可以使用,
$('.aQuestion').each(function(){
$(this).toggleClass("didntmakechoice",$(this).find('input[type="radio"]:checked').length == 0);
});
Run Code Online (Sandbox Code Playgroud)