2013-04-07 79 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

相關問題