显示/隐藏文本文件取决于单选按钮'选择

时间:2013-03-25 08:44:35

标签: javascript jquery ruby-on-rails-3

我知道这是一个重复的问题,但我不能让它运行。我尝试了所有在SO中找到的解决方案并使用谷歌搜索...

我的页面中有这个单选按钮表单。我想要的是,当用户选择“仅一个与会者”选项时,仅显示此选项的文本字段。如果用户选择另一个,则消失。

Normal form

用户选择仅一个选项后,会出现文本框。

expanded form

我一直在尝试使用javascript。我用这段代码

<script>
    $(document).ready(function()
        $("#send_to_one").hide();
        $("input:radio[name="people"]").change(function(){  
          if(this.checked){
            if(this.value =='one'){
              $("#send_to_one").show()
            }else{
              $("#send_to_one").hide();
            }
         }
    }
  });
</script>

表单的代码是

  <div id="send_to">
    <input type="radio" id="send_poll" name="people" value="all" checked="checked">all the attendees</br>      
    <input type="radio" id="send_poll" name="people" value="one" >only one attendee<br/>
    <div id="send_to_one">
      <label>Write the attendee's name: </label><input type="text" id="attendeename"><br/><br/>
    </div>
    <input type="radio" id="send_poll" name="people" value="group">a group of attendees</br>              
  </div>    

我检查过javascript文件已加载。我也尝试将javascript代码放在表单所在的html.erb文件中,在一个单独的.js文件和application.htm.erb的<head></head>部分,但没有运气。 我需要在哪里准确地放置每部分代码才能正常工作?

使用Rails 3.0.4,Ruby 1.8.9。我也在使用JQuery

2 个答案:

答案 0 :(得分:4)

LIVE DEMO

HTML:

<div id="send_to">
  <input type="radio" id="send_poll" name="people" value="all" checked="checked" />all the attendees<br/>      
  <input type="radio" id="send_poll" name="people" value="one" />only one attendee<br/>
  <div id="send_to_one">
      <label>Write the attendee's name: </label><input type="text" id="attendeename" /><br/><br/>
  </div>
  <input type="radio" id="send_poll" name="people" value="group" />a group of attendees<br/>              
</div>

JQ:

$(document).ready(function(){

    $("#send_to_one").hide();

    $("input:radio[name='people']").change(function(){  

            if(this.value == 'one' && this.checked){
              $("#send_to_one").show();
            }else{
              $("#send_to_one").hide();
            }

    });

});

答案 1 :(得分:1)

$(document).ready(function() {
    $("#send_to_one").hide();
    $("input:radio[name='people']").change(function(){  
         if(this.checked){
            if(this.value =='one'){
              $("#send_to_one").show()
            }else{
              $("#send_to_one").hide();
            }
         } 
    });
});

您的代码是正确的,但有一些缺少大括号,括号和未转义的引号。您使用的是任何形式的智能javascript编辑器吗?因为你真的应该......

http://jsfiddle.net/7yt2A/