jquery validate & ajax.beginform
Enviar um Ajax.Beginform enquanto estiver usando o plugin JQuery Validate não interrompe o envio. Existe uma boa maneira de garantir que o Ajax.Beginform não seja enviado?
Eu também tentei usar o plugin JQuery Forms para 'ajaxify' meu formulário. Isso funciona muito bem. No entanto, meu formulário é um formulário de login e, se o usuário fizer login com sucesso, eu gostaria que ele fosse redirecionado. Eu fiz isso em Ajax.BeginForm, retornando um objeto JavaScript, mas o mesmo código usando JQuery.Form.js simplesmente exibe o Javascript em vez de executá-lo. Existe uma maneira de gerenciar isso?
[conforme solicitado abaixo, adicionei um código de exemplo]
Código do Controlador
if (Request.IsAjaxRequest())
{
return Content("/receipt/latest");
}
else
{
return RedirectToAction("latest", "receipt");
}
Eu usei isso para retornar uma string para esta função js:
JS
function manageResponse(responseText, statusText) {
if (responseText.toString().substr(0, 1) == '/') {
window.location = responseText;
}
else {
$("#formResult").text(responseText);
}
}
Eu usei essas opções para amarrar a resposta com o plugin JQuery Form.
var options = {
beforeSubmit: function() {
return $('#login').validate().form();
},
success: manageResponse
};
Parece um pouco "hacky" para mim, mas funciona. Eu estava perguntando se havia uma maneira melhor ou não?
Roubar