我有一个表单,这个表单有一些必需的值,所以在我的viewmodel中我有一些东西:
[Required(ErrorMessageResourceType = typeof(Res_Errors), ErrorMessageResourceName = "errorPacienteNoSeleccionado")]
public int? scheduledIdPersonaSeleccionada { get; set; }
以及提交按钮,但我不想将表单提交给服务器,如果我的验证通过,我只需要执行jquery函数。
验证工作正常,但我不知道如何阻止表单发布,而是调用我的函数。
答案 0 :(得分:1)
如果您只想在表单提交上执行javascript(而不是实际上发送信息),请查看@Ajax.BeginForm
:
@using (Ajax.BeginForm(new AjaxOptions { OnBegin = "MyFunction" }))
{
@Html.EditorFor(x => x.scheduledIdPersonaSeleccionado)
<input type="submit" value="Presentar" />
}
或者你可以挂钩到提交事件并自己动手:
$('form').submit(function(){
if ($(this).valid()) { // validation passed
// cal your jquery function here
}
});
答案 1 :(得分:0)
将提交按钮更改为按钮类型。验证将调用,但提交赢了
<form>
@Html.EditorFor(x => x.scheduledIdPersonaSeleccionado)
@Html.ValidationMessageFor(x=>x.scheduledIdPersonaSeleccionado)
<input type="button" value="Presentar" onclick="DoSomething();" />
</form>