【问题标题】:Why is this Rails submit_tag disabling itself when I check a checkbox?为什么当我选中一个复选框时这个 Rails submit_tag 会自行禁用?
【发布时间】:2017-02-03 09:55:13
【问题描述】:

我在尝试将复选框(用于布尔字段)添加到我的表单时遇到了一个奇怪的问题。表单在仅更新文本字段或文件字段时完美运行,但由于我添加了一个布尔字段复选框,在选中任何复选框后,提交表单按钮“禁用”本身。

我似乎无法弄清楚 Rails 在幕后是如何或从哪里做到这一点的:

我的代码如下:

<%= simple_form_for @resource, url: resources_path do |f| %>
<div class="form-items">

  <div class="form-item full">
    <%= f.input :name, autofocus: true %>
  </div> <!-- /.form-item full -->

  <div class="form-item">
    <%= f.input :file, as: :file %>
  </div> <!-- /.form-item -->

  <div class="form-item">
    <%= f.input :public_file %>
  </div> <!-- /.form-item -->

</div> <!-- /.form-items -->

<%= f.button :submit, 'Add Resource', class: 'button' %>
<% end %>

public_file 是布尔字段,标记为:

t.boolean  "public_file",       default: false

在数据库架构中

提交按钮以这个呈现的 HTML 开始

<input type="submit" name="commit" value="Add Resource" class="btn button" data-disable-with="Add Resource">

但只要我选中复选框:

<input type="submit" name="commit" value="Add Resource" class="btn button" data-disable-with="Add Resource" disabled>

我不太确定如何调试它,也没有找到任何关于 Rails 自动禁用表单的文档?这可能是正在发生的事情吗?

任何指针都收到了!

【问题讨论】:

  • 你的表单对象是 'f' 那么 't.boolean "public_file" 中的 't' 是什么,默认:false'
  • @HardikUpadhyay 抱歉在数据库架构中

标签: ruby-on-rails forms checkbox simple-form


【解决方案1】:

只需更换你的

<%= f.input :public_file %>

<%= f.check_box :public_file %>

希望,它会起作用。

【讨论】:

  • 感谢 Hardik,虽然语法稍有不同,但使用 simple_form
  • 恐怕这不是正确的答案,见上文。
  • 做同一件事有不同的方法,这取决于你适应什么
【解决方案2】:

尝试使用novalidate 选项禁用默认验证。要将“public_file”添加为复选框,请使用as: :boolean

<%= simple_form_for @resource, url: resources_path, html: { novalidate: true } do |f| %>
<%= f.input :public_file, as: :boolean %>

【讨论】:

  • 感谢您的提示,即使问题最终是缺乏 JS 隔离,也值得知道!
【解决方案3】:

看来我是没有正确隔离我的 Javascript 函数的受害者。另一个页面的另一个功能导致了这个问题。

抱歉,已经开始尝试添加 body 类并使用如下语句在 Rails 中隔离(也可以)JS:

return unless $('.students.index').length > 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多