禁用不同浏览器中所有表单数据的自动填充功能

时间:2013-11-13 17:48:48

标签: javascript jquery asp.net-mvc-3 autocomplete kendo-ui

我使用下面的脚本尝试关闭所有表单数据的自动完成功能。

$(document).ready(function () { $("input").attr("autocomplete", "off"); }); 

但是,chrome仍会保存自动填充数据,并在我的登录表单中显示上一个条目。这也适用于IE。

如何阻止它保存以前输入的数据/文字?如果用户接受浏览器提示以保存下次输入的数据,如何防止保存的数据输入,因为它可能是公共计算机上保存的密码等潜在的安全问题?

我正在使用带有Kendo UI的ASP .NET MVC3来处理所有表单数据。

示例表单数据条目如下所示:

<div class="editor-field">
                    @Html.TextBoxFor(model => model.first_name, ViewBag.InactivePatient ? (object)new {@class = "formTextbox k-textbox" , disabled="disabled" } : new {@class = "formTextbox k-textbox"})
                    @Html.ValidationMessageFor(model => model.first_name)
                </div>

另外,我尝试手动将autocomplete = off设置为每个表单条目,但它导致我出现更多错误,我不想将autocomplete = off附加到每个条目。

另外,我尝试将 new {autocomplete ="off"} 附加到 @using (Ajax.BeginForm(null, null, new AjaxOptions { }, new { id = "patientForm" })) ,但是我收到了错误消息。所以,我问的是我不知道如何关闭asp .net表单中的自动完成功能。

1 个答案:

答案 0 :(得分:0)

  1. 将模型传递给使用预先填充空格的电子邮件和密码属性进行查看。

    new UserEditModel {Email =&#34; &#34;,密码=&#34; &#34;};

  2. 以这种方式重置javascript中的相应输入:

    function resetInputs() {
        $('input[name="Password"]').val('');
        $('input[name="Email"]').focus(function() {
        $(this).val('');
        });
    }
    
  3. 注意:诀窍是清除密码输入并将事件处理程序(焦点上)放在电子邮件输入上,这样只有当用户开始输入他的电子邮件时才会清除它。如果你立刻清除了两个输入,它就不会工作。