当对象为空Rails时禁用或隐藏按钮

时间:2017-10-26 11:49:09

标签: ruby-on-rails ruby

如果用户能够发送请求,我该如何禁用按钮。我使用了检查对象是否为空或控制器中有值的逻辑,如果对象为空,则用户可以提交请求,否则将隐藏或禁用该按钮。

Controller中的对象

karma.conf.js

查看

karma init

我使用@c_req = Notification.where("message LIKE ?", "%{friend}%") 检查它是否有值。

4 个答案:

答案 0 :(得分:0)

尝试将<%= f.submit 'Submit', :disabled => @c_req.present? %>替换为<%= f.submit 'Submit', :disabled => !@c_req.present? %>

答案 1 :(得分:0)

#present?用于检查项目是否存在。如果项目不存在,则必须禁用。为此,我们有#empty?

请不要使用c_req之类的内容,在变量名中有一点描述性。还要遵循代码样式,例如this ...

更新您的代码......

<%= form_for :friend, url: friends_path, method: :post do |f| %>
  <%= f.hidden_field :message, value: "Accepted your friend request" %>
  <%= f.hidden_field :date, value: @date %>
  <%= f.submit 'Submit', disabled: @c_req.empty? %>
<% end %>

如果您正在隐藏它...使用类似的查询来决定不显示按钮或隐藏css中的按钮。

例如:

<%= f.submit 'Submit', class: ('hidden' if @c_req.empty?) %>

我想你明白了!

答案 2 :(得分:0)

你扭曲了逻辑。如果按钮不存在,您想要禁用该按钮。

我尝试更改为.any?.empty?

为你未来的自己做好事并更好地命名变量。

答案 3 :(得分:0)

如果在disabled字段中添加了input属性,那么它将被禁用disabled = false

如果enable为空,您需要object按钮。

<%= form_for :friend, url: friends_path, method: :post do |f| %>
  <%= f.hidden_field :message, value: "Accepted your friend request" %>
  <%= f.hidden_field :date, value: @date %>
  <%= f.submit 'Submit',class: "submit_btn" %>
<% end %>

<script type="text/javascript">
  $(document).ready(function(){
    <% unless @c_req.empty? %>
      $(".submit_btn").attr('disabled', true)
    <% end %>

  })
</script>

上面的js代码在页面加载时运行,如果@c_reqempty,则submit按钮为enable,否则为disable