Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 当我在浏览器中按back键时,为什么按钮现在会丢失它';禁用的属性?_Html_Ruby On Rails_Ruby_Button_Back - Fatal编程技术网

Html 当我在浏览器中按back键时,为什么按钮现在会丢失它';禁用的属性?

Html 当我在浏览器中按back键时,为什么按钮现在会丢失它';禁用的属性?,html,ruby-on-rails,ruby,button,back,Html,Ruby On Rails,Ruby,Button,Back,我翻到一页。允许用户继续签出的特定按钮(我们称之为按钮A)当前已禁用(应该禁用) 我点击另一个按钮,进入另一个页面,输入我的地址详细信息。完成此操作后,一旦我被发送回上一页,上一页上的禁用按钮将被启用 但是,我没有填写我的地址详细信息,而是按下浏览器后退按钮,返回上一个屏幕。按钮A不再被禁用。当我通过浏览器检查时,它甚至没有禁用的属性。如果刷新浏览器,按钮A将再次禁用 这是按钮的代码,是simple\u表单的一部分 =f.按钮:按钮,“继续结帐选项”,类:“btn btn主要btn取整购物方法继

我翻到一页。允许用户继续签出的特定按钮(我们称之为按钮A)当前已禁用(应该禁用)

我点击另一个按钮,进入另一个页面,输入我的地址详细信息。完成此操作后,一旦我被发送回上一页,上一页上的禁用按钮将被启用

但是,我没有填写我的地址详细信息,而是按下浏览器后退按钮,返回上一个屏幕。按钮A不再被禁用。当我通过浏览器检查时,它甚至没有禁用的属性。如果刷新浏览器,按钮A将再次禁用

这是按钮的代码,是simple\u表单的一部分

=f.按钮:按钮,“继续结帐选项”,类:“btn btn主要btn取整购物方法继续js结帐提交”,禁用:@basket.需要地址?

@basket.requires_address?
在我返回时没有被调用

我尝试过硬编码
禁用:“disabled”
以查看会发生什么,但在按下后退键后,它甚至没有disabled属性

此页面的缓存是否有问题

我已经深入研究了这个项目,特别是javascript方面的内容<代码>js签出提交不受任何代码的影响


有什么想法吗?

因此,我们使用TurboLink解决了这个问题

我们为按钮提供了一个新类
js disable button

然后在代码底部添加以下说明(coffeescript):

因此,基本上,
@basket.requires_address?
检查是在每次加载页面时执行的,即使在按BACK键时也是如此。如果检查返回
true
,则该按钮被禁用


这提供了一个解决方案,但是我从来没有真正弄清楚问题发生的原因。

如果您使用的是TurboLink,那么很可能是缓存页面。无需在标题中添加“(Rails)”。这就是标签的作用。谢谢@max,我将进一步阅读这个主题,我以前从未接触过它!
$(document).on 'turbolinks:load', () ->
  if "#{@basket.requires_address?}"
    $('.js-disable-button').attr('disabled': 'disabled');