Javascript 如何使用输入收音机显示输入文本?

Javascript 如何使用输入收音机显示输入文本?,javascript,html,ruby-on-rails,input,Javascript,Html,Ruby On Rails,Input,你好,我试图用无线电输入显示输入,不幸的是,我不明白为什么它不工作。。使用此代码,当我单击“否”时,它会显示正确的输入,但当我单击“是”时,不会显示任何内容。 我不明白为什么谢谢你 <div class="login_content_form"> <%= f.label :post_author_yes, 'Yes' %> <%= f.radio_button :author, 'Yes', class: 'edit_

你好,我试图用无线电输入显示输入,不幸的是,我不明白为什么它不工作。。使用此代码,当我单击“否”时,它会显示正确的输入,但当我单击“是”时,不会显示任何内容。 我不明白为什么谢谢你

<div class="login_content_form">
            <%= f.label :post_author_yes, 'Yes' %>
            <%= f.radio_button :author, 'Yes', class: 'edit_input', onclick:'javascript:yesnoCheck();' %>
            <%= f.label :post_author_no, 'No' %>
            <%= f.radio_button :author, 'No', class: 'edit_input', onclick:'javascript:yesnoCheck();' %>
            <div id="ifYes" style="display:none">
              <%= f.text_field :author, class: 'edit_input', placeholder: 'Real Author' %>
            </div>
            <div id="ifNo" style="display:none">
            <%= f.text_field :author, class: 'edit_input', value: 'Unknown', :readonly => true %>
          </div>
 </div>

正确%>
还有剧本:

<script type="text/javascript">

function yesnoCheck() {
    if (document.getElementById('post_author_yes').checked) {
        document.getElementById('ifYes').style.display = 'block';
    }
    else
    document.getElementById('ifNo').style.display = 'block'
    document.getElementById('ifYes').style.display = 'none';
}
</script>

函数yesnoCheck(){
if(document.getElementById('post_author_yes')。选中){
document.getElementById('ifies').style.display='block';
}
其他的
document.getElementById('ifNo').style.display='block'
document.getElementById('ifies').style.display='none';
}
Html版本:

          <div class="login_content_form">
            <label for="post_post_author_yes">Yes</label>
            <input class="edit_input" onclick="javascript:yesnoCheck();" type="radio" value="Yes" name="post[author]" id="post_author_yes" />
            <label for="post_post_author_no">No</label>
            <input class="edit_input" onclick="javascript:yesnoCheck();" type="radio" value="No" name="post[author]" id="post_author_no" />
            <div id="ifYes" style="display:none">
              <input class="edit_input" placeholder="Real Author" type="text" name="post[author]" id="post_author" />
            </div>
            <div id="ifNo" style="display:none">
            <input class="edit_input" value="Unknown" readonly="readonly" type="text" name="post[author]" id="post_author" />
          </div>
          </div>

对
不

谢谢你的帮助

您的else语句没有大括号。因此,关闭“是”块显示的最后一条语句将始终执行。更正此错误:

function yesnoCheck(){
    if(document.getElementById('post_author_yes').checked) 
    {
            document.getElementById('ifYes').style.display = 'block';
    }
    else
    {
    document.getElementById('ifNo').style.display = 'block'
    document.getElementById('ifYes').style.display = 'none';
    }
}

确保在if/else周围使用花括号。不要忽略它们