2010-06-10 27 views
33

Tôi có một biểu mẫu ADO.NET EF định hướng điển hình cho phép người dùng nhập ngày. Tôi đã đặt một datepicker jQuery vào nó, nhưng khi người dùng đi để chọn một ngày trình duyệt cho thấy một số mục khác trong một danh sách thả xuống. Làm cách nào để tắt trình đơn thả xuống đó? Trong ASP.NET truyền thống, tôi sẽ đặt autocomplete = "off". Không chắc chắn về tương đương MVC.Cách tắt tự động hoàn thành trong Trình trợ giúp Html của MVC

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

Trả lời

61

Hãy thử điều này:

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

Nó sẽ tạo đánh dấu đó là gần như sau:

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

tôi đã sử dụng Darin của trên và áp dụng nó thành công một bản 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

Vài điểm

  1. Nếu bạn ít nhiều đã viết trang web và bạn không muốn quay lại và sửa đổi tất cả cshtml của bạn để tắt tự động hoàn thành (chúng tôi phải quay lại và thay đổi hàng trăm dòng mã trong trang web), bạn có thể vô hiệu hóa nó qua Javascript với một handler sẵn sàng, như vậy:

    //Disable autocomplete throughout the site 
    $(document).ready(function() { 
        $("input:text,form").attr("autocomplete","off"); 
    }) 
    
  2. Từ những gì tôi đã đọc, bạn cần phải vô hiệu hóa nó ở cả hình thức và mức độ textbox để cho nó để làm việc trên tất cả các phiên bản của Firefox và IE.

+0

Tập lệnh của bạn hoạt động tuyệt vời! – Kbdavis07

Các vấn đề liên quan