Gặp sự cố khi tải plugin jQuery Validate để phát đẹp.Tại sao <form> được cấp thuộc tính NoValidate?
Mẫu
public class FooVM
{
[Required]
public string Name { get; set; }
}
Layout
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="@Url.Content("~/scripts/jquery-1.9.0.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery-migrate-1.0.0.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/bootstrap.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/content/bootstrap-responsive.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/content/bootstrap.min.css")" rel="stylesheet" type="text/css" />
<title>@ViewBag.Title</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="span12">
<div class="navbar">
<div class="navbar-inner">
<a class="brand" href="#">idoneit</a>
<ul class="nav">
<li class="menu-link">@Html.ActionLink("Home", "index", "bar")</li>
</ul>
</div>
</div>
</div>
<div class="span12 error-container">
</div>
<div class="span12 main-body">
@RenderBody()
</div>
</div>
</div>
</body>
</html>
Xem
model bootstrapvalidate.Models.FooVM
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("add", "bar", FormMethod.Post, new { @class = "form-horizontal" }))
{
<fieldset>
@Html.ValidationSummary()
<legend>Testing Bootstrap & Validate</legend>
<div class="control-group">
<label for="Name" class="control-label">Name</label>
<div class="controls">
@Html.TextBoxFor(x => x.Name)
</div>
<button type="submit" class="btn">Add!</button>
</div>
</fieldset>
}
Khi tôi nộp, thông báo lỗi được hiển thị một thời gian ngắn và sau đó là hình thức viết lại anyway.
Một điều tôi đã nhận thấy mà tôi chưa từng thấy trước đây là đánh dấu chứa 'novalidate' thuộc tính
<form action="/bar/add" class="form-horizontal" method="post" novalidate="novalidate">
Từ các bit Tôi đã đọc, đây là HTML5 thuộc tính có thể ngăn chặn xác nhận. Vì vậy, yeah, đây là những gì đang gây ra nó tôi giả định.
Câu hỏi là - tại sao bejesus được thêm vào biểu mẫu? Tôi đã không yêu cầu nó!
chỉnh sửa: đã làm một chút đào dựa trên câu trả lời @ Rob 's, có vẻ như jquery validate được ném một ngoại lệ, vì thế mà postback ..
đây là jquery.validate 1.10
Theo [trang plugin] (http://bassistance.de/jquery-plugins/jquery-plugin-validation/), phiên bản 1.10 có chỉ được thử nghiệm thông qua jQuery 1.8. – Sparky