Как показать ввод текста с радио ввода? - PullRequest
0 голосов
/ 23 февраля 2020

Здравствуйте, я пытаюсь отобразить вход с радиовходом, к сожалению, я не понимаю, почему он не работает .. С этим кодом, когда я нажимаю «Нет», он показывает мне правильный ввод, но когда я нажимаю на « Да, ничего не отображается. Я не понимаю, почему спасибо.

<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>

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>

Спасибо за помощь!

1 Ответ

0 голосов
/ 23 февраля 2020

Ваше утверждение else не имеет фигурных скобок. Следовательно, последний оператор, в котором вы выключаете отображение блока yes, всегда выполняется. Исправьте это:

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';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...