2010-06-10 16 views
33

Tengo un formulario típico de ADO.NET impulsado por EF que permite al usuario ingresar una fecha. He puesto un jQuery datepicker en él, pero cuando el usuario va a seleccionar una fecha, el navegador muestra algunas otras entradas en un menú desplegable. ¿Cómo desactivo ese menú desplegable? En ASP.NET tradicional pondría autocomplete = "off". No estoy seguro del equivalente de MVC.Cómo deshabilitar la función de autocompletar en MVC Html Helper

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

Respuesta

61

Prueba esto:

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

que generará marcado que está cerca de los siguientes:

<input type="text" id="date" name="date" class="aDatePicker" autocomplete="off" /> 
0

he usado de Darin arriba y aplicado con éxito a una demo:

@model RequestAQuote.Models.RequestAQuoteModel 
    @{ 
     ViewBag.Title = "Request a Free Quote"; 
     List<string> ProjectTypes = new List<string>(); 
     ProjectTypes.Add("Electrical Wiring"); 
     ProjectTypes.Add("Install Breakers"); 
     ProjectTypes.Add("Ceiling Fan"); 
     ProjectTypes.Add("Replace Light"); 
     ProjectTypes.Add("Replace Outlet");  
    } 

    <h2>Request A Quote</h2> 
    @using (Html.BeginForm()) 
    { 
     @Html.ValidationSummary() 
     <fieldset> 
      <legend>Request a Quote Form</legend> 
      <ol> 
       <li> 
        @Html.LabelFor(m => m.ProjectType) 
        @Html.DropDownListFor(m => m.ProjectType, new MultiSelectList(ProjectTypes)) 
       </li> 
       <li> 
        @Html.LabelFor(m => m.ContactName) 
        @Html.EditorFor(m => m.ContactName, new { autocomplete = "off" }) 
       </li> 
       <li> 
        @Html.LabelFor(m => m.DaTimePhone) 
        @Html.EditorFor(m => m.DaTimePhone, new { autocomplete = "off" }) 
       </li> 
       <li> 
        @Html.LabelFor(m => m.Email) 
        @Html.EditorFor(m => m.Email, new { autocomplete = "off" }) 
       </li> 
       <li> 
        @Html.LabelFor(m => m.ProjectDescription) 
        @Html.EditorFor(m => m.ProjectDescription, new { autocomplete = "off" }) 
       </li> 
      </ol> 
      <input type="submit" value="Request Quote" /> 
     </fieldset> 
    } 

    @section scripts 
    { 
     @Scripts.Render("~/bundles/jqueryval") 
    } 

    } 
13

Par de puntos

  1. Si más o menos ya ha escrito el sitio y no desea volver atrás y modificar toda su cshtml desactivar autocompletar (que habría tenido que volver atrás y cambiar cientos de líneas de código en todo el sitio), se puede desactivar a través de Javascript con un manejador de listas, así:

    //Disable autocomplete throughout the site 
    $(document).ready(function() { 
        $("input:text,form").attr("autocomplete","off"); 
    }) 
    
  2. por lo que he leído lo que necesita para desactivarlo en la forma y el nivel de cuadro de texto a fin de que para trabajar en todas las versiones de Firefox e IE.

+0

Su secuencia de comandos funciona genial! – Kbdavis07

Cuestiones relacionadas