tengo los próximos:validación discreto haciendo caso omiso de los atributos de datos-val, pero trabajar con class = "required"
@using (Html.BeginForm())
{
<div class="left-column">
@Html.LabelFor(m => m.Expression)
@Html.TextAreaFor(m => m.Expression, new { @spellcheck = "false" })
@Html.EditorFor(m => m.Sku)
</div>
}
Con el siguiente JavaScript que se ejecuta cada segundo en un temporizador:
$("form").validate();
if ($("form").valid()) {
//...
}
genera el siguiente html para el elemento de área de texto (el elemento que sólo necesitan de validación):
<textarea
data-val="true"
data-val-required="The Expression field is required."
cols="20" rows="2"
id="Expression" name="Expression"
spellcheck="false">
</textarea>
el El problema es que la validación no hace nada, a menos que agregue manualmente class = "required" usando las herramientas del navegador. Si hago esto, la validación funciona y se muestra el mensaje de error "Se requiere el campo Expresión". Para ser preciso, "$ (" form "). Valid()" siempre devuelve verdadero incluso cuando textarea está vacío. Dado que estoy usando anotaciones que generan automáticamente los atributos data-val, me gustaría confiar en ellos. ¿Qué estoy haciendo mal?
FYI mis referencias de script tener este aspecto:
<script src="/Scripts/modernizr-2.0.6-development-only.js" ...
<script src="/Scripts/jquery-1.6.2.js" ...
<script src="/Scripts/Parser.js" ...
<script src="/Scripts/jquery.unobtrusive-ajax.js" ...
<script src="/Scripts/jquery.validate.js" ...
<script src="/Scripts/jquery.validate.unobtrusive.js" ...
se produce tanto en Chrome e IE9, mi tipo de documento es –
¿Su formulario tiene el ID '# paserForm'? Además, ASP.NET MVC debería llamar 'validate', no debe llamarlo usted mismo. –
Sí, pero de hecho, el código JS real se ejecuta simplemente en $ ("formulario"), explícitamente llamando a parserForm era solo una prueba para ver si cambiaba algo. Lo mismo ocurre con .validate() –