【发布时间】:2013-07-24 09:52:16
【问题描述】:
可能的解决方案,但无法使其发挥作用:
$(function(){
$('input[name="q10"]').click(function(){
if ($(this).is(':checked'))
{
var flag=0;
$("input[type='radio']:checked").each(function() {
if($(this).val()==1 || $(this).val()==2 ){
$("#disagree").show();
flag++;
}
else if(($(this).val()==3 || $(this).val()==4) && flag==0)
$("#agree").show();
});
}
});
});
我有一个包含 10 个问题的页面 - 每个问题都有一个回答量表,如下所示:
<div id="rq1" class="row" onmouseover="changeBackgroundColor(this.id)" onmouseout="changeBackgroundColor2(this.id)">
<div class="col1">1.</div>
<div class="col2a">Question text</div>
<div class='colans'>
<input name='q1' value='4' id='q1a4' type='radio' onclick='mand();' />
</div>
<div class='colans'>
<input name='q1' value='3' id='q1a3' type='radio' onclick='mand();' />
</div>
<div class='colans'>
<input name='q1' value='2' id='q1a2' type='radio' onclick='mand();' />
</div>
<div class='colans'>
<input name='q1' value='1' id='q1a1' type='radio' onclick='mand();' />
</div>
<div class='colans'>
<input name='q1' value='-1' id='q1a-1' type='radio' onclick='mand();' />
</div>
</div>
以上 10 个问题中的每一个都重复了 q1 到 q10。
在 10 个问题的末尾,我有两个textareas,用户可以在其中编写 cmets,但是,如果用户选择 ANY 响应,则需要出现第一个 textarea,其值为2 或 1。如果用户选择了值为 4 或 3 的 ANY 响应,但未选择值为 2 或 1 的响应,则需要显示第二个 textarea。
最后,一旦用户回答了最后一个问题,即问题 10,我需要运行 jQuery——此时我需要触发代码。
过去,我为每个响应手动创建了 Javascript 代码并进行了检查,但我想知道是否有使用 jQuery 的更简洁、更简洁的方式?
【问题讨论】:
-
你能告诉我你在上述解决方案中遇到了什么错误吗?
-
上述代码在实施时只检查 1 个问题 - 我需要检查问题 1 到 10 以查看受访者选择的内容。有什么想法吗?
标签: jquery forms radio-button selection