Javascript 使用ajax更改RubyonRails视图中按钮的状态

Javascript 使用ajax更改RubyonRails视图中按钮的状态,javascript,ruby-on-rails,ruby,ajax,Javascript,Ruby On Rails,Ruby,Ajax,我有一个设置,我想动态更改按钮禁用状态。目前,我的逻辑如下所示: <script> $(document).ready(function() { var has_attachment_file_sent = <%= @has_attachment_file_sent %> console.log(has_attachment_file_sent); if(has_attachment_file_sent) {

我有一个设置,我想动态更改按钮禁用状态。目前,我的逻辑如下所示:

<script>
    $(document).ready(function() {
        var has_attachment_file_sent = <%= @has_attachment_file_sent %>
        console.log(has_attachment_file_sent);
        if(has_attachment_file_sent) {
           $('#signature_request_button').attr('disabled', true);
        }        
    })
</script>

发送请求
发送请求
但是,此方法的问题是,这只会在刷新页面时更改按钮的状态。有没有一种方法可以使用RoR实现这种Ajax,或者我应该在这里做什么

还尝试使用javascript,如下所示:

<script>
    $(document).ready(function() {
        var has_attachment_file_sent = <%= @has_attachment_file_sent %>
        console.log(has_attachment_file_sent);
        if(has_attachment_file_sent) {
           $('#signature_request_button').attr('disabled', true);
        }        
    })
</script>

创建文件
show.js.erb
,然后在控制器中将其保留为
format.js
,不带花括号

创建一个带有

<button class="button is-info is-fullwidth  m-t-10 m-b-10" disabled="<%= disabled ? “disabled” : “”  %>”>Send request</button>


创建文件
show.js.erb
,然后在控制器中将其保留为
format.js
,不带花括号

创建一个带有

<button class="button is-info is-fullwidth  m-t-10 m-b-10" disabled="<%= disabled ? “disabled” : “”  %>”>Send request</button>


首先将html放在分部中,并将内容包装在div中,假设分部的名称为“buttons.html.erb”

_buttons.html.erb

然后,您应该创建一个名为show.js.erb的文件,其中包含以下代码:

$('#buttons').html('')
$('#buttons').append("<%= escape_javascript render(:partial => 'buttons') %>");
$('#按钮').html('')
$(“#按钮”)。追加(“‘按钮’%”>”;

首先将html放在分部中,并将内容包装在div中,假设分部的名称为“buttons.html.erb”

_buttons.html.erb

然后,您应该创建一个名为show.js.erb的文件,其中包含以下代码:

$('#buttons').html('')
$('#buttons').append("<%= escape_javascript render(:partial => 'buttons') %>");
$('#按钮').html('')
$(“#按钮”)。追加(“‘按钮’%”>”;

哦,是啊,真烦人,忘了那件事

在js.erb中可能有类似的内容

黑客们,这应该行得通,但我确信还有另一个解决方案我还没有找到

# render partial line here
<% if @disabled %>
  $(‘#button-id’).prop(“disabled”, true);
<% else %>

$(‘#button-id’).removeAttr(“disabled”)

<% end %>

#在此处渲染部分行
$('#按钮id').prop(“已禁用”,true);
$(“#按钮id”).removeAttr(“已禁用”)

哦,是啊,真烦人,忘了那件事

在js.erb中可能有类似的内容

黑客们,这应该行得通,但我确信还有另一个解决方案我还没有找到

# render partial line here
<% if @disabled %>
  $(‘#button-id’).prop(“disabled”, true);
<% else %>

$(‘#button-id’).removeAttr(“disabled”)

<% end %>

#在此处渲染部分行
$('#按钮id').prop(“已禁用”,true);
$(“#按钮id”).removeAttr(“已禁用”)


发送请求时,是否要禁用if语句中的按钮并启用else语句中的按钮?还是什么?@has_attachment_file_sent是一个布尔值,取决于是否上传了文件。基于此,我想更新按钮。你如何检查是否上传了文件?@Taoufik添加了控制器。我有一个解决方案,如果你接受我可以发布它,在进行ajax调用时,我们可以将其与按钮关联,然后我们可以刷新按钮的状态。当你发送请求时,您不想禁用if语句中的按钮,而启用else语句中的按钮吗?还是什么?@has_attachment_file_sent是一个布尔值,取决于是否上传了文件。基于此,我想更新按钮。你如何检查是否上传了文件?@Taoufik添加了控制器。我有一个解决方案,如果你接受我可以发布它,要进行ajax调用,我们可以将它与按钮关联,然后我们可以刷新按钮的状态。嗯,奇怪的是,该按钮现在似乎一直处于禁用状态?我不确定禁用的属性是否会接受任何参数,也许可以通过rails创建该按钮
按钮标签工作,但我仍然需要刷新页面以使其生效我知道它非常接近,只是现在不靠近计算机:/hm,奇怪的是,按钮现在似乎一直被禁用?我不确定disabled属性是否会接受任何参数,也许可以通过rails创建该按钮
按钮标签可以工作,但我仍然需要刷新页面以使其生效我知道它真的很接近,只是现在不在计算机附近:/n您能详细说明“刷新”链接的想法吗?这是一个按钮,您可以自定义css,使其看起来像一个按钮,但它的功能是什么?它使用remote:True执行ajax调用您能详细说明“刷新”的想法吗链接?这是一个按钮,您可以自定义css,使其看起来像一个按钮,但它的功能是什么?它使用remote:true进行ajax调用
$('#buttons').html('')
$('#buttons').append("<%= escape_javascript render(:partial => 'buttons') %>");
# render partial line here
<% if @disabled %>
  $(‘#button-id’).prop(“disabled”, true);
<% else %>

$(‘#button-id’).removeAttr(“disabled”)

<% end %>