Ruby on rails 4 在rails视图中使用隐藏字段

Ruby on rails 4 在rails视图中使用隐藏字段,ruby-on-rails-4,Ruby On Rails 4,在html视图中使用隐藏字段的最佳实践是什么 在我的html.erb中,我需要检查一个值是否存在,如果存在,那么您希望确保按钮保持禁用状态 我可以像这样在ruby代码中设置一个隐藏字段吗 <% if @is_draft %> <input type="hidden" id="isdraft "value="true"><% end %> 那么我可以在jquery代码中访问它吗 这是公认的做法吗?请注意,javascript在它自己的文件中,脚本不在htm

在html视图中使用隐藏字段的最佳实践是什么

在我的html.erb中,我需要检查一个值是否存在,如果存在,那么您希望确保按钮保持禁用状态

我可以像这样在ruby代码中设置一个隐藏字段吗

<% if @is_draft %>
<input type="hidden" id="isdraft "value="true"><% end %>

那么我可以在jquery代码中访问它吗


这是公认的做法吗?请注意,javascript在它自己的文件中,脚本不在html.erb文件中

大多数时候,它被认为是非常糟糕的实践

相反,在检查条件后,通常最好在服务器端将按钮呈现为禁用状态。 还要确保清理此表单发出的请求(尽管您的条件不允许,但仍单击了按钮)。用户可以取消禁用该按钮并单击它

如果您发现出于任何原因必须在HTML中保存一些信息,我会求助于data-*-属性

希望有帮助

编辑伪代码示例:

# MyView.html.erb
<% unless @is_draft %>
   <%= render partial: 'my_checkbox_button_enabling', format: [:js] %>
<% end %>

<%= button_tag "My nice button", disabled: true, id: "my-button" %>
#MyView.html.erb

问题在于默认情况下该按钮处于禁用状态,可以通过选中行上的任何复选框来启用该按钮。但只有当@if_draft为false时,我才需要检查jquery js文件中该变量的值……如果你问我,只需将复选框的启用-禁用onclick处理程序放入js文件中,并且仅当@if_draft为false时才渲染它。这样,在这种情况下,你只会有这种行为。这对你有用吗?不确定你的意思,但用户希望随时看到按钮。当页面使用css呈现时,我默认禁用它。因此,当页面加载时,按钮变灰,因为不会选中任何复选框。但如果@is_draft为真,则无论选中哪个复选框,按钮都不应启用。请稍等,我会用一些伪代码更新我的答案,让您了解一下。