如果用户能够发送请求,我该如何禁用按钮。我使用了检查对象是否为空或控制器中有值的逻辑,如果对象为空,则用户可以提交请求,否则将隐藏或禁用该按钮。
Controller中的对象
karma.conf.js
查看
karma init
我使用@c_req = Notification.where("message LIKE ?", "%{friend}%")
检查它是否有值。
答案 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_req
为empty
,则submit
按钮为enable
,否则为disable