如何根据用户选择的单选按钮更改要显示的内容?

时间:2013-10-31 08:22:37

标签: javascript jquery html

我要创建3个单选按钮供用户选择。一旦用户点击该按钮,它将向用户显示用户选择的单选按钮的描述。

例如

- if user select first radio button ==> it will show the description under that
                                        radio button

- if user select second radio button ==> it will show the description under that
                                        radio button

- if user select third radio button ==> it will show the description under that
                                        radio button

我的代码

<p><input type='radio' name='content_type' value='1' />&nbsp;This is content A of request</p>
<p><input type='radio' name='content_type' value='2' />&nbsp;This is content B of request</p>
<p><input type='radio' name='content_type' value='3' />&nbsp;This is content C of request</p>
<div id='show'></div>

的Javascript

$(document).ready(function(){
    $('#content_type').on('change', function(){
    var n = $(this).val();
    switch(n)
    {
            case '1':
                  document.getElementById('#show').innerHTML="1st radio button";
                  break;
            case '2':
                  document.getElementById('#show').innerHTML="2nd radio button";
                  break;
            case '3':
                  document.getElementById('#show').innerHTML="3rd radio button";
                  break;
        }
    });

我上面的代码不起作用。任何人都可以帮我展示这个问题吗?

提前感谢

4 个答案:

答案 0 :(得分:3)

您错误地使用了jQuery选择器。您还需要关闭$(document).ready()。正确的代码:

$(document).ready(function(){
    $('input[name=content_type]').on('change', function(){
    var n = $(this).val();
    switch(n)
    {
            case '1':
                  $('#show').html("1st radio button");
                  break;
            case '2':
                  $('#show').html("2nd radio button");
                  break;
            case '3':
                  $('#show').html("3rd radio button");
                  break;
        }
    });
});

JSfiddle

答案 1 :(得分:0)

使用此代码:

$('input[name=content_type]').on('change', function(){

OR

$('input[type=radio]').on('change', function(){

#content_type表示您正在选择名为content_type的id的元素。你没有这样的元素。

之后你的JS代码将是:

$(document).ready(function(){
    $('input[type=radio]').change(function(){
    var n = $(this).val();
    switch(n)
    {
            case '1':
                  $('#show').html("1st radio button");
                  break;
            case '2':
                  $('#show').html("2nd radio button");
                  break;
            case '3':
                  $('#show').html("3rd radio button");
                  break;
        }
    });
});

答案 2 :(得分:0)

你的选择器错了。

1)您应使用#content_type

而不是input[name=content_type]

2)另外,从getElementById中移除#

document.getElementById('#show')

应该是

document.getElementById('show')

或将其更改为使用jQuery:

$('#show').html("1st radio button");

答案 3 :(得分:0)

这是修改过的html ....我只是在您的消息中添加了一个范围

 <p><input type='radio' class="rad" name='content_type' value='1' />&nbsp;<span >This is content A of request</span></p>
<p><input type='radio' class="rad" name='content_type' value='2' />&nbsp;<span>This is content B of request</span></p>
<p><input type='radio'  name='content_type' value='3' />&nbsp;<span>This is content C of request</span></p>
<div id='show'></div>

这是jQuery

$(document).ready(function(){
    $('span').hide();
    $('input[name="content_type"]').on('change',function(){
       $('span').hide();
       $(this).next().show();
    });
});

这是demo