В моей форме на рельсах у меня есть тип радиовхода, и если пользователи выбирают «Да» или «Нет», соответствующий текст ввода меняет свои атрибуты. В основном, если пользователь выбирает «Да», у него будет Вход, где он должен будет ввести значение, но если он выберет «Нет», он не сможет изменить значение не по умолчанию. Пока все не работает, за исключением того, что если пользователи выбирают «Да» и вводят значение, но понимают, что они допустили ошибку и хотят выбрать «Нет», то значение не сбрасывается по умолчанию, и оно является тем, которое он ввел в «Да» это остается. Почему ??? Вот что я сделал:
<%= f.label :post_author_yes, 'Yes' %>
<%= f.radio_button :author, 'Yes', class: 'radio-inline', onclick:'javascript:yesnoCheck();' %>
<%= f.label :post_author_no, 'No' %>
<%= f.radio_button :author, 'No', class: 'radio-inline', onclick:'javascript:yesnoCheck();' %>
<div id="input" style="display:none">
<%= f.text_field :author, class: 'edit_input', placeholder: 'Real Author', :readonly => true %>
</div>
function yesnoCheck(){
if(document.getElementById('post_author_yes').checked)
{
document.getElementById('input').style.display = 'block';
document.getElementById('post_author').readOnly = false;
}
else {
document.getElementById('input').style.display = 'block';
document.getElementById('post_author').readOnly = true;
document.getElementById("post_author").setAttribute('value', 'No');
}
}