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