0

我有一个表单中的这个单选按钮组:

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

1 回答 1

0

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

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

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

我指的是: question_status_open 和 question_status_closed

于 2012-10-15T09:40:12.130 回答