2

フォームがあります。このフォームには必要な値がいくつかあるため、ビューモデルには次のようなものがあります。

[Required(ErrorMessageResourceType = typeof(Res_Errors), ErrorMessageResourceName = "errorPacienteNoSeleccionado")]
public int? scheduledIdPersonaSeleccionada { get; set; }

送信ボタンだけでなく、フォームをサーバーに送信したくありません。検証に合格した場合にのみjquery関数を実行する必要があります。

検証は機能していますが、フォームが投稿されないようにする方法がわかりません。代わりに関数を呼び出します。

4

3 に答える 3

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
  }
});
于 2013-10-08T19:07:53.803 に答える
1

送信ボタンをボタンタイプに変更します。検証は呼び出しますが、送信はしません

<form>
    @Html.EditorFor(x => x.scheduledIdPersonaSeleccionado)
    @Html.ValidationMessageFor(x=>x.scheduledIdPersonaSeleccionado)
    <input type="button" value="Presentar" onclick="DoSomething();" />
</form>
于 2015-06-21T07:29:00.697 に答える