2013-04-07 78 views
4

目前我仍然在使用Javascript来找到我的方式,所以如果我错过了一些非常明显的事情(很可能!),我很抱歉。根据单选按钮选择切换DIV可见性

我有一个小表单,有很多单选按钮,就像这样;

<input type="radio" name="dtype" id="dtype" value="option1"> 
<input type="radio" name="dtype" id="dtype" value="option2"> 
<input type="radio" name="dtype" id="dtype" value="option3"> 
<input type="radio" name="dtype" id="dtype" value="option4"> 

根据用户的选择,我需要立即显示相关的div。我有这个工作正常的第一个电台,但没有任何后续的(并没有错误报告在萤火虫)。这就是我现在所拥有的;

<script type="text/javascript"> 
$(function() { 
$('#dtype').change(function() { 
if($(this).val() == 'option1') {$('#div1').slideToggle('500');} 
if($(this).val() == 'option2') {$('#div2').slideToggle('500');} 
if($(this).val() == 'option3') {$('#div3').slideToggle('500');} 
if($(this).val() == 'option4') {$('#div4').slideToggle('500');} 
}); 
}); 
</script> 

我也尝试过'其他如果'在第一个3后,没有成功。指针欢迎!

+0

,如果你创建一个演示中,你会收到更好的效果jsfiddle.net – enginefree 2013-04-07 20:22:16

回答

3

您正尝试使用相同的ID选择所有输入元素(ID's should be unique)。您可以尝试将您的ID #dtype更改为类别.dtype,并通过选择它们。上课。

下面是关于您的用例的工作jsFiddle

HTML:

<input type="radio" name="dtype" class="dtype" value="option1"> 
<input type="radio" name="dtype" class="dtype" value="option2"> 
<input type="radio" name="dtype" class="dtype" value="option3"> 
<input type="radio" name="dtype" class="dtype" value="option4"> 

<div id="div1">A</div> 
<div id="div2">B</div> 
<div id="div3">C</div> 
<div id="div4">D</div> 

的jQuery:

$(function() { 
    $('.dtype').change(function() { 
    if($(this).val() == 'option1') {$('#div1').slideToggle('500');} 
    if($(this).val() == 'option2') {$('#div2').slideToggle('500');} 
    if($(this).val() == 'option3') {$('#div3').slideToggle('500');} 
    if($(this).val() == 'option4') {$('#div4').slideToggle('500');} 
    }); 
}); 
+1

谢谢!这很好,我学到了一些新东西! – Lee 2013-04-07 20:24:41

0

的ID必须是唯一的,你所以一定要做到这一点:

<input type="radio" name="dtype" id="dtype1" value="option1"> 
<input type="radio" name="dtype" id="dtype2" value="option2"> 
<input type="radio" name="dtype" id="dtype3" value="option3"> 
<input type="radio" name="dtype" id="dtype4" value="option4"> 

和脚本:

<script type="text/javascript"> 
    $(function() { 
    $('input[name=dtype]').change(function() { 
    if($(this).val() == 'option1') {$('#div1').slideToggle('500');} 
    if($(this).val() == 'option2') {$('#div2').slideToggle('500');} 
    if($(this).val() == 'option3') {$('#div3').slideToggle('500');} 
    if($(this).val() == 'option4') {$('#div4').slideToggle('500');} 
    }); 
    }); 
</script> 
0

你的问题是与ID你有相同ID的所有单选按钮 - 的变化ID上课所以它看起来像:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
<input type="radio" name="dtype" class="dtype" value="option1"> 
<input type="radio" name="dtype" class="dtype" value="option2"> 
<input type="radio" name="dtype" class="dtype" value="option3"> 
<input type="radio" name="dtype" class="dtype" value="option4"> 

<div id="div1">1</div> 
<div id="div2">2</div> 
<div id="div3">3</div> 
<div id="div4">4</div> 

<script type="text/javascript"> 
$(function() { 
$('.dtype').change(function() { 
alert($(this).val()); 
if($(this).val() == 'option1') {$('#div1').slideToggle('500');} 
else if($(this).val() == 'option2') {$('#div2').slideToggle('500');} 
else if($(this).val() == 'option3') {$('#div3').slideToggle('500');} 
else if($(this).val() == 'option4') {$('#div4').slideToggle('500');} 
}); 
}); 
</script> 
+0

@ user125697 ofcourse!当我没有评论时,我开始写这篇文章 - 我想我是一个缓慢的作家 – 2013-04-07 20:29:27

+0

感谢所有花时间回答 - 我只能接受一个答案,不幸的是,尽管你们都回答正确。 – Lee 2013-04-07 20:34:58

+0

@ user125697无法将它们写入$('#div1')。 $( '#DIV2')。 ... ;) 都很好! – 2013-04-07 20:35:25

相关问题