Masz problemy z pobieraniem wtyczki jQuery Validate, aby grać ładnie.Dlaczego <form> ma atrybut NoValidate?
model
public class FooVM
{
[Required]
public string Name { get; set; }
}
Układ
<!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>
Zobacz
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>
}
Kiedy przesłać komunikat o błędzie pojawi się na chwilę, a następnie tworzą słupki tylne i tak.
Jedno zauważyłam, czego nie widzieliśmy wcześniej jest to, że zawiera znaczników „novalidate” atrybut
<form action="/bar/add" class="form-horizontal" method="post" novalidate="novalidate">
od bitów czytałem, to atrybut HTML5, który uniemożliwia weryfikację. Więc tak, właśnie to powoduje. Zakładam.
Pytanie brzmi - dlaczego bejesus jest dodawany do formularza? Nie prosiłem o to!
edit: zrobiłem trochę kopania na podstawie odpowiedzi @rob „s wydaje się jQuery validate rzuca wyjątek, stąd odświeżenie strony ..
to jquery.validate 1,10
Jak na stronie pluginu [] (http://bassistance.de/jquery-plugins/jquery-plugin-validation/), wersja 1.10 ma testowane tylko przez jQuery 1.8. – Sparky