Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Jquery 验证和Firefox';s输入缓存_Jquery_Firefox - Fatal编程技术网

Jquery 验证和Firefox';s输入缓存

Jquery 验证和Firefox';s输入缓存,jquery,firefox,Jquery,Firefox,当您刷新/重新加载页面或使用“后退”按钮时,Firefox会用导航离开之前输入的内容重新填充您的输入 虽然这是一个很好的特性,但它不会触发jquery验证和添加到页面的未保存更改警告 有没有办法在Firefox中禁用此功能(无需每次重命名每个控件)或捕获Firefox事件?您可以使用此方法触发任何事件(自定义或非自定义) 假设您有一个验证事件: $(document).ready(function() { $('#yourform').trigger('validate'

当您刷新/重新加载页面或使用“后退”按钮时,Firefox会用导航离开之前输入的内容重新填充您的输入

虽然这是一个很好的特性,但它不会触发jquery验证和添加到页面的未保存更改警告

有没有办法在Firefox中禁用此功能(无需每次重命名每个控件)或捕获Firefox事件?

您可以使用此方法触发任何事件(自定义或非自定义)

假设您有一个验证事件:

$(document).ready(function()
    {
        $('#yourform').trigger('validate');
    }
);
如果您的验证插件使用函数进行验证,则只需执行以下操作:

$(document).ready(function()
    {
          validate($('#yourform'));
    }
);
当您的文档准备就绪时,将触发该操作


在浏览器加载缓存输入值的过程中,最终使用setTimeout以避免加载时间。

我建议您添加一个延迟函数,以便在页面加载几秒钟后验证和检查表单内容?这可能是捕获所有浏览器的最安全方法,其中一些浏览器只有在整个页面加载完毕后才插入保存的表单数据。

.validate()
调用
文档后。ready
,也调用一次以触发验证,如下所示:

$(function() {
  $('#myForm').validate({ /* options here */ });
  $('#myForm').valid();
});

我正在使用jqueryvalidate插件,并且已经在文档中调用了validate。我不相信firefox会触发使validate运行的事件。就好像firefox正在覆盖默认值而不是使用console.log($(“#youform input”).val())来查看代码检索到了哪些值。延迟检查是我最后的选择。这条路很危险。另外,如果firefox没有触发更改事件,我如何知道更改了什么?这对验证有效(谢谢),但它只告诉我页面无效,而不是发生了更改。我需要它来通知用户有未保存的更改,并在导航离开时发出警告。有没有办法告诉他们显示的内容不是从服务器中提取的内容?@Chris-你想让他们缓存输入吗?听起来您可能想阻止页面一起缓存……如果您使用的是哪种服务器端框架,答案会有所不同。@Nick-我可以看出缓存的输入是多么有用,但最简单的行为是不缓存选项。但是,我知道在firefox中禁用这种行为很困难?因此,我在考虑如何使用它。@Chris-在每个浏览器中都很容易,您使用的是什么服务器平台?所有当前的浏览器(甚至IE6)都会尊重无缓存头,所以我肯定会选择这个选项。这将是IIS6和IIS7。最好将这些标题放在IIS、响应或页面上的元标记中?