组中的单选按钮使表单提交按钮无响应

时间:2012-10-15 09:16:50

标签: javascript jquery ruby-on-rails-3

我有一个单一的单选按钮组:

<%= 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 />

1 个答案:

答案 0 :(得分:0)

我错了还是你有多个theese divs?

如果是这样,问题就是你在生成的html中有多个相同的id。

html id必须是唯一的,才能运行javascript。 document.getElementById作为示例只返回一个元素而不是多个。

我所指的id是:question_status_open和question_status_closed