【问题标题】:Disabled textbox is no more disabled on back button press按下后退按钮时不再禁用禁用的文本框
【发布时间】:2016-12-04 16:18:26
【问题描述】:

我有一个电子邮件文本框,其中有一个复选框。如果未选中该复选框,则会禁用电子邮件文本框。但是,我注意到在 Google Chrome 上,当我按下后退按钮时,电子邮件文本框不再处于禁用状态。然而,在 Firefox 中,没有这样的问题。那么,我该怎么做才能解决这个非常烦人的问题呢?

有没有办法检查页面是否通过后退按钮到达,以便在未选中复选框的情况下强制禁用文本框?

【问题讨论】:

  • 不,这不是同一个问题。那个问题就解决了。这是另一个问题。它关于文本框的启用和禁用,而不是关于从中读取。基本上我只关心这里的GUI。
  • 您能否分享您的代码,以便我们给出具体答案...可能有很多错误导致问题...
  • 我认为代码很好,因为我在 firefox 上没有遇到任何问题。我的问题是是否有办法检查页面是否通过后退按钮到达,以便我可以强制采取措施解决该问题。
  • 这个怎么样? stackoverflow.com/questions/829046/… 这是否回答了您关于如何检测是否有人按下后退按钮的问题?

标签: javascript php html google-chrome firefox


【解决方案1】:

您可以使用 JavaScript 显式禁用您的文本框元素:

if(document.getElementById('myCheckbox').checked === false){
    document.getElementById('myTextbox').disabled = true;    
}

【讨论】:

  • 是的,我知道,但这不是问题所在。问题是当按下后退按钮到达页面时,文本框不再被禁用。也许,我应该尝试捕捉 onload 事件并在那里强行做这些事情。或者我应该在哪个活动中这样做?
  • 好的,我在文档就绪事件 ($(function()) 上这样做了,它解决了问题!
【解决方案2】:

我通过在文档准备函数中强制执行此操作解决了这个问题,如下所示。

$(function()
{
    if (!document.getElementById('check_sendToEmail').checked)
    {
        document.getElementById('YourEMail').value = ''
        document.getElementById('YourEMail').disabled = true
    }
});

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多