如何在MVC Html Helper中禁用自动完成功能

Mat*_*att 47 asp.net-mvc

我有一个典型的ADO.NET EF驱动表单,允许用户输入日期.我已经在其上放了一个jQuery datepicker但是当用户选择日期时,浏览器会在下拉列表中显示其他一些条目.如何关闭该下拉菜单?在传统的ASP.NET中,我会把autocomplete ="off".不确定MVC的等价物.

<div class="editor-field">
    <%= Html.TextBoxFor(model => model.date, new { @class = "aDatePicker" })%>
    <%= Html.ValidationMessageFor(model => model.date) %>
</div> 
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 89

试试这个:

<%= Html.TextBoxFor(
    model => model.date, 
    new { @class = "aDatePicker", autocomplete = "off" }
)%>
Run Code Online (Sandbox Code Playgroud)

它将生成接近以下内容的标记:

<input type="text" id="date" name="date" class="aDatePicker" autocomplete="off" />
Run Code Online (Sandbox Code Playgroud)


Joh*_* Wu 19

几点

  1. 如果您已经或多或少已经编写了网站,并且您不想返回并修改所有cshtml以禁用自动完成(我们将不得不返回并在整个网站中更改数百行代码),您可以通过Javascript使用就绪处理程序禁用它,如下所示:

    //Disable autocomplete throughout the site
    $(document).ready(function() {
        $("input:text,form").attr("autocomplete","off");
    })
    
    Run Code Online (Sandbox Code Playgroud)
  2. 根据我的阅读,您需要在表单和文本框级别禁用它,以便它可以在所有版本的Firefox和IE上运行.