0

簡単な質問です。

フォームの次のセクションを非同期でアップロードするための Ajax.Action リンクがあります。

@Ajax.ActionLink("Next" , "matches",null, new AjaxOptions {UpdateTargetId = "placeholder", InsertionMode = InsertionMode.InsertAfter,HttpMethod = "GET"}, new { @class = "button" })

「ボタン」クラスを適用して、大きなボタンのように見せます。前のフォームを非表示にする関数をトリガーする上記の AjaxAction リンクに JQuery .click イベントを添付しようとしています。そのために、以下の JQuery を使用しています。

<script>
    $(document).ready(function () {
        $(this).closest("a.button").click(function () {
            $("form.common").hide();
        });

    });
</script>

これは私にとってはうまくいきません。Ajax.ActionLink は正常に動作しますが、Jquery は動作しません。以下は私のページの大まかな内訳です​​。

<form class="common"> (this form needs to hide)
    //lots of inputs
 <ActionLink class="button>
</form>

<div id="placeholder">
(this is where the new form will be inserted)
</div>

私は C# と JavaScript/JQuery を初めて使用するので、誰かがここで正しい方向に向けてくれることを願っています。

4

2 に答える 2

0

jQuery で特別なイベントを使用するのではなく、ajax リンクによって実行される ajax リクエストの最初に JS メソッドを呼び出すことができます。

OnBeginリンクにプロパティを追加しAjaxOptions、それに JS 関数を割り当て、その JS 関数でロジックを実行します

Ajax リンク

new AjaxOptions { OnBegin = "OnBegin" ... }

JS

function OnBegin() {
    $("form.common").hide();
}

これが役立つことを願っています!!

于 2013-09-19T16:12:44.600 に答える
-1

最も近いものを使用する代わりに、要素を直接ターゲットにするようにしてください。ボタン id を使用するか、よりわかりやすいクラスを割り当てることもできます。

$("a.action_button").click(function () {
   $("form.common").hide();
});
于 2013-09-19T16:09:20.947 に答える