这是我可以在 Rails 嵌入式 Ruby 之外使用纯 HTML/JS 做的事情,它本身就可以正常工作,但在我看来,我需要在表单中使用此功能。我一直在玩它,每次我尝试将它应用到嵌入式 Ruby 时它都会中断。
这是我嵌入的红宝石的样子:
<div class="field">
<%= f.label :credit_type %>
<%= f.select :credit_type, options_for_select([["Permanent", "Permanent"], ["Term", "Term"]], @credit.credit_type) %>
</div>
<div class="field">
<%= f.label :term_years %>
<%= f.number_field :term_years %>
</div>
除非用户从前一个字段中选择“术语”,否则如何隐藏第二个字段?
这就是我如何让它在嵌入式红宝石之外工作,尽管这对我没有帮助,因为我无法存储这些值:
<form id="terms">
<p>
<label>Credit Type
<select name="credit_type">
<option value=""></option>
<option value="Permanent">Permanent</option>
<option value="Term">Term</option>
</select>
</label>
</p>
<p>
<label>Term Years
<input name="term_years">
</label>
</p>
</form>
<script>
function toggleShared() {
var form = this.form,
credit_type = form.elements.credit_type,
term_years = form.elements.term_years.parentNode;
term_years.style.display = 'none';
if (credit_type.value == 'Term') {
term_years.style.display = '';
}
}
var form = document.getElementById('terms');
form.elements.credit_type.onchange = toggleShared;
form.elements.credit_type.onchange();
</script>