Здесь есть пара вопросов. Во-первых, вы пытаетесь смешать ненавязчивую и регулярную проверку jquery. Если вы хотите использовать проверку таким образом, вам нужно убедиться, что jquery.validate.unobtrusive.js
НЕ включено. Это связано с тем, что jquery.validate.unobtrusive.js
автоматически анализирует и создает валидатор для документа, и самое первое, что делает validate
, - проверяет, существует ли валидатор, и завершает работу, если таковой имеется.
Если вы решите пойти по ненавязчивому маршруту, не используйте $.validator.unobtrusive.adapters.add
, так как это приведет к ошибке без jquery.validate.unobtrusive.js
.
Я бы порекомендовал пойти с ненавязчивой проверкой, так как я думаю, что вы используете MVC3.
Если вы собираетесь использовать ненавязчивую проверку, у вас есть два варианта, установите атрибуты data- * самостоятельно, добавив data-val="true" data-val-nohtml="Html not allowed"
к своей текстовой области, как предложено JohnnyO, и добавив диапазон с data-valmsg-for="note" data-valmsg-replace="true"
, чтобы показать сообщение об ошибке. Или вы можете создать свой собственный атрибут DataAnnotation.
Вот код для addMethod (необходим для обоих видов проверки)
<script type="text/javascript">
(function ($) {
$.validator.addMethod('nohtml', function (value, element) {
// Test 'value' for html here. 'value' is the value of the control being validated.
return true; // Return true or false depending on if it passes or fails validation, respectively.
}, 'Html not allowed');
} (jQuery));
</script>
и javascript, необходимый для ненавязчивого, выглядит следующим образом:
$.validator.unobtrusive.adapters.addBool('nohtml');
Относительно того, как сделать пользовательский атрибут проверки, так как я не уверен, какой язык вы используете, если вы используете MVC3, или если вам даже нужна эта информация через 4 месяца после того, как вы спросили, я собираюсь просто оставить эти ссылки для справки.
Краткое сравнение традиционной и ненавязчивой проверки JavaScript в MVC 3 - блог Митчелла Трента
Пользовательская проверка ASP.NET MVC 3 - Microsoft Developer Network