12

カスタムjqueryダイアログを使用できるようにしたい、または少なくともAjax.Beginform関数でAjaxOptions.Confirmプロパティを使用するときにボタンのテキストをOK/キャンセルから別のものに変更できるようにしたい. このような:

<div>
    @using (Ajax.BeginForm("Function", "Controller", new { id = theId }, new AjaxOptions
        {
            HttpMethod = "POST",
            UpdateTargetId = "theForm",
            InsertionMode = InsertionMode.Replace,
            LoadingElementId = "iconGif",
            OnBegin = "OnBegin",
            OnFailure = "OnFailure",
            OnSuccess = "OnSuccess",
            Confirm = "Are you sure?" //TODO: Confirm with different dialog?
        }, new { id = "feedback-form" }))
    {
        //Some stuff
        <button onclick="derp()">Submit</button>
    }
</div>

AjaxOptions.Confirm プロパティを介して Ajax.Beginform でこれを達成する方法はありますか?

4

4 に答える 4

6

Ajax.Beginform がレンダリングされたときにまだ作成されていない値で AjaxOptions Confirm テキストをカスタマイズするために、これに遭遇しました。
例:
Confirm="Are you sure you want to create Customer Id" + someValue + "?"

最終的に解決策が見つかりました: このアプローチは、JQuery を使用して送信ボタンの動作を変更し、値を取得し、独自の確認ダイアログを実行し、ユーザーが確認した場合は Ajax フォームを送信することに関するものです。

手順:
1- AjaxOptions からConfirmを削除し、 set ボタンの type="submit"を回避します。type="button" の可能性があります。

<div>
    @using (Ajax.BeginForm("Function", "Controller", new AjaxOptions
        {
            HttpMethod = "POST",
            UpdateTargetId = "theForm",
            InsertionMode = InsertionMode.Replace,
            LoadingElementId = "iconGif",
            OnBegin = "OnBegin",
            OnFailure = "OnFailure",
            OnSuccess = "OnSuccess"
            // Confirm option has been removed 
        }, new { id = "feedback-form" }))
    {
        //Some stuff
        <button id="buttonId" type="button" onclick="derp()">Submit</button> //Setting id and type
    }
</div>

2- ページまたはレイアウトで参照されている js ファイルに以下を追加します。

$("#buttonId").click(function () { 
if(confirm("Are you sure you want to create Id "+$("#CustomerId").val() + " ?"))
{
$("#feedback-form").submit(); // Submitting the form if user clicks OK
    }
    });

「CustomerId」は、ページ内の非表示の入力の ID です。
これが役立つことを願っています。

于 2013-08-30T17:54:54.753 に答える
4

いいえ、AjaxOptions の Confirm プロパティを使用してこれを実現することはできません。これは、window.confirmUI のカスタマイズを許可せず、ブラウザーに依存する JavaScript メソッドを使用するだけです。この機能を自分で実装する必要があります。たとえば、jQuery UI dialog plugin.

于 2013-05-09T21:27:26.083 に答える