0

シンプルな形です。1つのフィールドと送信ボタンがあります。送信ボタンを非表示にします。送信ボタンは、実際には、jQueryを使用して要素を取得してclick()を実行するjavascriptメソッドを呼び出すアンカータグでトリガーされます。これは正常に機能し、フォームの投稿とレコードがDBに正常に書き込まれます。

そこで、検証用に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")%>">&nbsp;<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>
                                &nbsp;
                            </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;
}
4

1 に答える 1

1

あなたがする必要があるのはあなたのフォームでjQuery検証をトリガーすることです。試す:

$('form').validate();

検証が成功したときにフォームを送信するには、次のことを試してください。

$('form').validate({ submitHandler: function(form) { form.submit(); } });

'form'はフォームの有効なjQueryセレクターである必要があることに注意してください...

于 2009-11-30T21:13:44.057 に答える