質問
簡単なフォームがあります。 1つのフィールドと送信ボタンがあります。 送信ボタンを非表示にします。送信ボタンは実際にはアンカーでトリガーされます jQueryを使用して要素を取得して実行するjavascriptメソッドを呼び出すタグ click()。これは正常に機能し、フォームの投稿と記録がデータベースに正常に書き込まれます。
したがって、検証用にxValを追加しました。単純なクライアント側の検証を追加しようとしています。
アンカータグをクリックしても機能しません。ただし、送信ボタンを非表示にして、jsメソッドを呼び出すアンカータグを使用する代わりに、それを使用してフォームを投稿しようとすると、機能します。基本的に、jsメソッドを使用して送信ボタンのクリックをトリガーすると、なぜ機能しないのかを理解しようとしています。
素晴らしいアイデアはありますか?どうもありがとう!
ここにいくつかのコード...
<div id="manufacturerButtons" class="moduleRow">
<%= Html.ActionImage(Url.Content("~/Content/Icons/bullet_go_back.png"), "Back To Admin", "Admin", "Admin")%>
| <a class="actionImage" href="javascript: addManufacturer();">
<img border="0" src="<%= Url.Content("~/Content/Icons/accept.png")%>"> <span>Add
Manufacturer </span></a>
</div>
<div class="moduleContent">
<div id="manufacturerContainer">
<div class="moduleRow">
<h3>
New Manufacturer</h3>
</div>
<div class="moduleRow">
<% Html.BeginForm("NewManufacturer", "Admin", FormMethod.Post); %>
<table class="noBorder" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 125px">
<h6>Name:</h6>
</td>
<td>
<%= Html.TextBox("Name") %>
</td>
</tr>
<tr style="display: none;">
<td>
</td>
<td>
<input type="submit" id="btnAdd" name="btnAdd" />
</td>
</tr>
</table>
<% Html.EndForm(); %>
<%= Html.ClientSideValidation<EquipmentManufacturer>() %>
</div>
</div>
Javascript:
function addManufacturer() {
//$('form').submit(); // doesnt work when trying to validate either
$('#btnAdd').click();
return true;
}
解決
する必要があるのは、フォームでjQuery検証をトリガーすることです。試してください:
$('form').validate();
検証が成功したときにフォームを送信するには、次を試してください:
$('form').validate({ submitHandler: function(form) { form.submit(); } });
「form」はフォームの有効なjQueryセレクターである必要があることに注意してください...
所属していません StackOverflow