クライアント側の検証に MicrosoftMvcValidation.js などを使用する既存の ASP.NET MVC2 アプリケーションを変更しています。
<h2>Details</h2>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm("Details", "Add", FormMethod.Post, new { id="addForm" }))
{ %>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Title) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Title) %>
<%: Html.ValidationMessageFor(model => model.Title) %>
</div>
...
<input type="submit" value="Create" />
クライアント側の検証はうまく機能しています。
ただし、デザイナーは送信ボタンをきれいなアンカー タグに変更したいと考えています。アンカーの onclick イベントを使用してフォームを送信しようとしています。
<a class="add-campaign-button-done" onclick="document.getElementById('addForm').submit();"><span></span></a>
フォームは送信されますが、クライアント側の検証が機能しなくなります。