2010-10-10 127 views
0

我有一个关于用Javascript选择选择框的问题。我上传了http://www.mikevierwind.nl/javascript/risicoinventarisatie.htm上的文件。在这里您可以看到一个包含大量问题和单选按钮的表格。每个问题都有2个单选按钮,是和不是。用javascript选择选择框

当你去第一个问题。 “糖尿病”比你选择radiobutton“ja”你看到另一个问题现在将显示。但是当我选择“nee”时,这个问题一定会消失。我怎样才能用Javascript创建它?我的JavaScript代码:

var diabetes = false; 
var diabetesvraag = $("#blokken table.lichamelijkegezondheid .diabetesextra") 
var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja") 

diabetesvraag.hide(); 
buttondiabetes.click(function() 
{ 
    if(diabetes == false) 
    { 
    diabetes = true; 
    diabetesvraag.show(); 
    } 

    else 
    { 
    diabetes = false; 
    diabetesvraag.hide(); 
    } 
    return false; 
}); 
+0

你确定吗?回答“nee”会使问题看不见,但如果用户犯了一个错误并想撤销其答案会怎么样?另外,我发现选择项目时存在一些问题(您只能选择一个“nee”和一个“ja”)。 – 2010-10-30 18:48:32

回答

1

嗯,首先,你需要得到你的HTML纠正。需要将每组“是”和“否”单选按钮与正确的name属性组合在一起。这将告诉浏览器每一组“是”和“否”中只有一组是可选的。但是,name必须对每个条件都是唯一的。像这样的东西应该做的:

<span class="radio"> 
    <input type="radio" name="condition_selection" value="yes" id="yes" /> 
    <label for="yes">Yes</label> 
    <input type="radio" name="condition_selection" value="no" id="no" /> 
    <label for="no">No</label></span> 

你也应该使用for属性的可访问性的原因label元素,并尝试使用除用于标记这种形式的表其他别的东西,但是这是不相关的这里的问题。


接下来,你可以尝试简化使用change事件处理程序来检查这两个州的Javascript代码,像这样的东西:

$('.add_qns').hide(); 

$('.radio :radio').change(function(){ 
    if(this.value === 'yes'){ 
     $(this).parent().next('.add_qns').show(); 
    } else { 
     $(this).parent().next('.add_qns').hide(); 
    } 
}); 

你有改变的选择$(this).parent().next('.add_qns'),以满足您的标记。请参阅:http://www.jsfiddle.net/yijiang/BcAwH/现场演示。

+0

感谢您的帮助。我去过这个! – robin 2010-10-10 15:02:05

+1

@robin在堆栈溢出中,如果答案已解决您的问题,您可以通过单击答案一侧上的绿色复选标记将答案标记为已接受。这给了提问者和回答者一个奖励他们的努力,并且将问题标记为已解决。此外,很高兴成为服务:) – 2010-10-10 15:06:14

+0

好的谢谢你的提示。 – robin 2010-10-10 15:28:26

0

class="diabetesja"的东东按钮为好,因为你的代码只分配click事件到.diabetesja单选按钮..

或者你可以一类class="diabetesnee"添加到您的NEE单选按钮和改变

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja") 

var buttondiabetes = $("#blokken table.lichamelijkegezondheid .diabetesja, #blokken table.lichamelijkegezondheid .diabetesnee") 

的一点是,这两个单选按钮(JA和NEE)需要有单击处理..

+0

感谢您的帮助! – robin 2010-10-10 15:01:34