我有一个单一的单选按钮组:
<%= form_for(@question) do |f| %>
....
<div class="field">
<%= f.radio_button :status, "open", { :checked => true } %>
<%= f.label :status, "Open" %>
<%= f.radio_button :status, "closed" %>
<%= f.label :status, "Closed" %>
</div><br />
....
<% end %>
没有Javascript代码错误,但只有当我从组中删除其中一个单选按钮或在浏览器上禁用Javascript或删除项目目录中的所有Javascript文件时,表单提交按钮才有效。以下是唯一对单选按钮进行任何条件更改的JQuery代码:
....
$('#hide_question_form').click( function(e) {
$('.new_question_form').slideUp(500);
$('#question_title').val(null);
$('#question_description').val(null);
$('input:radio[name="question[status]"]')[0].checked = true;
$('input:radio[name="question[status]"]')[1].checked = false;
});
....
我尝试逐个评论/删除所有Javascript文件以查看问题所在,但除非我删除所有这些文件,否则该按钮不起作用。任何具体建议?谢谢!
修改
根据要求生成HTML:
<div class="field">
<input checked="checked" id="question_status_open" name="question[status]" required="required" type="radio" value="open" />
<label for="question_status">Open</label>
<input id="question_status_closed" name="question[status]" required="required" type="radio" value="closed" />
<label for="question_status">Closed</label>
</div><br />
答案 0 :(得分:0)
我错了还是你有多个theese divs?
如果是这样,问题就是你在生成的html中有多个相同的id。
html id必须是唯一的,才能运行javascript。 document.getElementById作为示例只返回一个元素而不是多个。
我所指的id是:question_status_open和question_status_closed