Вы можете сделать это многими способами, но, возможно, самым чистым является использование аннотаций данных в вашей модели представления.Например -
public class MyViewModel
{
[Required]
public string MyProperty { get; set; }
}
Теперь в вашем представлении используйте
<% Html.EnableClientValidation(); %>
непосредственно перед запуском формы.Это приведет к тому, что объект JavaScript будет генерироваться в разметке, отправленной клиенту.Сценарий выглядит следующим образом:
<script type="text/javascript">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"FirstName","ReplaceValidationMessageContents":true,"ValidationMessageId":"FirstName_validationMessage","ValidationRules":[{"ErrorMessage":"The First Name field is required.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"LastName","ReplaceValidationMessageContents":false,"ValidationMessageId":"LastName_validationMessage","ValidationRules":[{"ErrorMessage":"The Last Name field is required.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"EmailAddress","ReplaceValidationMessageContents":false,"ValidationMessageId":"EmailAddress_validationMessage","ValidationRules":[{"ErrorMessage":"The Email Address field is required.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"ZipCode","ReplaceValidationMessageContents":false,"ValidationMessageId":"ZipCode_validationMessage","ValidationRules":[{"ErrorMessage":"Zip Code must be 5 character long.","ValidationParameters":{"minimumLength":0,"maximumLength":5},"ValidationType":"stringLength"},{"ErrorMessage":"Zip Code must be five digits.","ValidationParameters":{"pattern":"\\d{5}"},"ValidationType":"regularExpression"},{"ErrorMessage":"The Zip Code field is required.","ValidationParameters":{},"ValidationType":"required"}]}],"FormId":"form0","ReplaceValidationSummary":false,"ValidationSummaryId":"valSumId"});
//]]>
</script>
Этот объект содержит метаданные проверки, которые могут использоваться плагином проверки на стороне клиента для подключения проверки на стороне клиента.Плагин, который поставляется с ASP.NET MVC 2, является валидатором Microsoft AJAX, и вам нужно будет включить эти скрипты на странице, чтобы использовать валидацию (MicrosoftAjax.js
, MicrosoftMVCAjax.js
и MicrosoftMvcValidation.js
в этом порядке).
В качестве альтернативы, если вам удобнее использовать jQuery, вы можете получить скрипт в исходном коде MvcFutures, который подключает валидацию к плагину jQuery validate (это не полноценный скрипт, в котором отсутствуют несколько частей, таких какполучение резюме проверки на стороне клиента).Сценарий MicrosoftMvcJQueryValidation.js
, и вы можете получить его здесь
Преимущество использования аннотаций данных в том, что вы получаете проверку на стороне сервера, а проверка на стороне клиента и на сервере будет проверяться дляожидаемые значения.Кроме того, аннотации данных позволяют устанавливать сообщения об ошибках и имена для меток полей из атрибутов (сообщения об ошибках и отображаемые имена * также могут поступать из файлов ресурсов)
* Поскольку MVC2 был скомпилирован с версией .NET 3.5аннотаций данных, отображаемое имя не может быть установлено из файлов ресурсов.Есть обходной путь к этому - атрибут DisplayName из ресурсов? .
СЕЙЧАС EASY WAY
Просто установитеобработчик события submit в форме
var form = document.getElementById('exc-');
var oldSubmit = form.onsubmit || function() {};
form.onsubmit = function() {
var input = document.getElementById('myinput');
if (input.value === '') {
alert('please Enter some value in textbox');
return false;
}
oldSubmit();
}
или с помощью jQuery
$('#exc-').submit(function() {
if ($('#myinput').val() === '') {
alert('please Enter some value in textbox');
return false;
}
});