0

確認ダイアログを表示したいのですが、ユーザーが「続行」を押すと、フォームが送信されます。

これはjqueryコードです:

$(document).ready(function () {
    $('#submit').click(function () {

        $('#confirmation-dialog').dialog('open');
        return false; // prevents the default behaviour
    });
    $('#confirmation-dialog').dialog({
        autoOpen: false, width: 400, resizable: false, modal: true, //Dialog options
        buttons: {
            "Continue": function () {
                $(this).dialog('close');
                var form = $('transferForm', this);
                $(form).submit();
                    return true;
                    },

            "Cancel": function () {
                $(this).dialog("close");
                return false;
            }
        }
    });
});

そして、これはフォームです:

@using (Ajax.BeginForm("Transfer", "Location", null, new AjaxOptions
{
    UpdateTargetId = "update-message",
    InsertionMode = InsertionMode.Replace,
    HttpMethod = "POST",
    //OnBegin = "ajaxValidate",
    OnSuccess = "updateSuccess"

}, new { @id = "transferForm" }))
{

<div style="width:600px;">
<div class="editorLabel">
    @Html.LabelFor(m => m.FromEmail)
</div>
<div class="editorText">
    @Html.TextBoxFor(m => m.FromEmail)
</div>
<div class="clear"></div>
<div class="editorLabel">
    @Html.LabelFor(m => m.ToEmail)
</div>
<div class="editorText">
    @Html.TextBoxFor(m => m.ToEmail)
</div>
<div class="clear"></div>
<p>
    <input type="submit" name="submit" value="Transfer" class="btn" id="submit"/>
</p>
</div>
}
<div id="update-message"></div>
<div id="commonMessage"></div>
<div id="confirmation-dialog">
<p>Are you sure you want to proceed with transfer ?

</p>
</div>

しかし、確認後、フォームは送信されません。ここで何が間違っているのでしょうか?? 何か案は??

4

1 に答える 1

1

これを変更してみてください:

var form = $('transferForm', this);
$(form).submit();

に:

$("#IDofForm").submit();

ダイアログ内では、thisイベントハンドラーはおそらくあなたが思っていることを参照しておらず、タグ名を持つ要素を持っていない可能性があります(セレクターを使用していないとき、またはセレクターの前でtransferFormターゲットにしているものです)?#.

于 2012-08-24T12:52:10.147 に答える