Pergunta
Estou usando ajax.beginform para enviar um formulário e xval para aplicar a validação
O problema que a solicitação de postagem do Ajax está sendo feita mesmo quando o formulário tem erros. Sei que a validação do lado do cliente está funcionando, porque está exibindo mensagens de erro adequadas e o que não, mas por que acha que não há problema em fazer a solicitação do Ajax de qualquer maneira é algo que eu não entendo.
Eu até tentei colocar causesvalidation = true
Dentro da guia Enviar, mas o formulário ainda está sendo enviado.
<% using (Ajax.BeginForm("SuggestTemp", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "Result" }))
{%>
<table>
<tr>
<td style="text-align:right">
Title
</td>
<td>
<%= Html.TextBox("Upload.Title")%>
<%= Html.V
alidationMessage("Upload.Title")%>
</td>
</tr> <tr><td><%=Html.ClientSideValidation<Upload>("Upload") %></td><td></td></tr>
<tr><td></td><td><input type = "submit" causesvalidation = "true" value = "Suggest " class = "btn"/></td></tr>
</table>
<div id = "Result"><%=ViewData["SuggestStatus"]%></div>
Solução
tente colocar $("#yourFormId").validate()
para o OnBegin
parâmetro
Ex:
<%
using (Ajax.BeginForm("SuggestTemp", "yourControllerName", new{}, new AjaxOptions
{
HttpMethod = "POST",
OnBegin = "function(){$('#myForm').validate();}"
},
new { id = "myForm" }){ %>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow