【问题标题】:jquery - turning "autocomplete" to off for all forms (even ones not loaded yet)jquery - 为所有表单关闭“自动完成”(即使尚未加载)
【发布时间】:2010-05-18 20:04:50
【问题描述】:

所以,我得到了这个代码:

$(document).ready(function(){
    $('form').attr('autocomplete', 'off');
});

它适用于所有已经存在的表单。问题是,我的某些形式在通过 ajax 加载的弹出窗口中。这不适用于它们,因为它们稍后会“加载”。

我知道有一个 live() 函数 - 但这仅用于附加事件。将其应用于所有表单的好方法是什么?

谢谢。

【问题讨论】:

    标签: jquery forms


    【解决方案1】:

    您可以将实时事件绑定到焦点事件,然后更改其属性。

    $(document).ready(function(){
        $(':input').live('focus',function(){
            $(this).attr('autocomplete', 'off');
        });
    });
    

    从 jQuery 1.7 开始,jQuery.live 已弃用。这段代码现在看起来像:

    $(document).ready(function(){
        $( document ).on( 'focus', ':input', function(){
            $( this ).attr( 'autocomplete', 'off' );
        });
    });
    

    【讨论】:

    • live() 函数现在已弃用 api.jquery.com/live 你现在应该在 api.jquery.com/on 上使用
    • @AndyBrudtkuhl 没有理由拒绝投票一个 3 岁的答案,因为它有点过时了。我已经更新了答案,使其更加最新。
    • 我投了反对票,因为它没有用——这不是反对票的重点吗?我留下了评论,说明了原因以及更新的答案。对我来说似乎是适当的堆栈礼仪。现在我删除了我的反对票,因为很明显原始答案已被弃用。感谢更新。
    • @AndyBrudtkuhl 我通常会添加评论,说明需要更新答案。获得 2000 个代表点后,您可以编辑答案以在它们过期时更新它们。
    【解决方案2】:

    直播活动现已弃用,您应该改为使用 on 活动。这将附加到 DOM 中的每个输入,无论它是否已创建。然后它将 autocomplete="off" 属性添加到该输入。

    $(document).ready(function() {
      $(document).on('focus', ':input', function() {
        $(this).attr('autocomplete', 'off');
      });
    });
    

    【讨论】:

      【解决方案3】:

      使用 jquery 可能还不够,因为像 chrome 之类的一些浏览器可能会在文档准备好之前加载“自动完成”保存的数据 ($(document).ready)

      jquery 是这样工作的

      $('input, :input').attr('autocomplete', 'off');
      

      但手动将autocomplete='off' 添加到您的输入标签可能会更有效

      【讨论】:

        【解决方案4】:

        这在 Chrome 中也适用于我。

        $("#autocmpldisablechk").click(function () {
            if (!$(this).is(":checked")) { 
                // enable autocomplete
                $("#autocomplete").autocomplete({
                    disabled: false
                });
            }
            else { 
                // disable autocomplete
                $("#autocomplete").autocomplete({
                    disabled: true
                });
            }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-06
          • 2020-07-07
          • 1970-01-01
          • 2012-06-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多