0

我有这个:

<%= form_tag do %>

<%= label_tag :name, 'Name: ' %><%= text_field_tag 'name' %>
<%= submit_tag 'submit', disabled: @op %>
<%= label_tag :dis_false, "True" %>
<%= radio_button_tag :dis, :true %><br />
<%= label_tag :dis_true, "False" %>
<%= radio_button_tag :dis, :false %><br />
<% end %>

路线设置正确,@op = params[:dis]。

现在,当我尝试选择“false”并单击“提交”时,该按钮将被禁用。This should only happen if the optin-box "True" is selected. 所以我想知道,这是怎么回事?我基本上是在尝试制作一个简单的应用程序,可以帮助我通过选项框启用/禁用按钮。

4

2 回答 2

1

我想我得到了你的答案,当你发送 false@op设置为"false"not false

尝试这个:

@op = params[:dis] == "true"

这是:

params[:dis] # comes as a string "true" or "false", since these are values radio button returns.

params[:dis] == "true" # is true without quotes when radio button with value "true"
                       # false, without quotes, otherwise, for example when
                       # when params[:dis] is "false"
于 2013-08-08T18:43:32.357 回答
0

在这种情况下,似乎“dis”更适合作为复选框。禁用/启用也可以通过 javascript/coffeescript 处理。将此添加到 app/assets 中的 js.coffee 文件中:

jQuery ->
  $("#dis").change ->
    $("#submit").attr "disabled", $("#dis").is(":checked")

或者在普通的 jQuery 中:

$(function() {
  $("#dis").change(function() {
    $("#submit").attr("disabled", $("#dis").is(":checked"));
  });
});

并更新您的表单字段:

<%= submit_tag 'submit', disabled: @op, :id => "submit" %>
<%= check_box_tag(:dis, '', false) %>
于 2013-08-08T18:56:28.167 回答