0

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

$(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 表单中关闭自动完成功能。

4

1 回答 1

0
  1. 使用预先填充了空格的电子邮件和密码属性传递模型以查看。

    新的 UserEditModel { 电子邮件 = " ", 密码 = " "};

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

    function resetInputs() {
        $('input[name="Password"]').val('');
        $('input[name="Email"]').focus(function() {
        $(this).val('');
        });
    }
    

注意:诀窍是只清除密码输入并将事件处理程序(焦点)放在电子邮件输入上,这样只有当用户开始输入他的电子邮件时才会清除它。如果您同时清除两个输入,它将不起作用。

于 2016-05-21T06:30:14.103 回答