0

JQueryのUIダイアログを使用してフォームを開いています。私の試みは、ダイアログを送信して閉じることです。困っています。

親ウィンドウはクリックからダイアログ(部分ビューを含む)を開き、フォームが送信されます。初めて、データがDBに保存されます。しかし、クリックしてダイアログを再度開いて送信すると、同じ値で2つのデータ行がDBに保存されます。

私のコードは以下の通りです:

$('#newFileDialog').dialog('destroy');$('#newFileDialog').remove();

このコードに何か問題がありますか?

あなたの助けに感謝します。

アップデート:

部分図:

@using(Html.BeginForm("New", "File", new {}, FormMethod.Post, new { Id = "newFileForm" }  ))
{    
   @Html.ValidationSummary()    
   @Html.RenderHTML(
        new TabContainerViewModel(
                new TabViewModel { Name = "File", ViewName = "Common", Model = Model, Visible = true},
                new TabViewModel { Name = "Permission", ViewName = string.Empty, Visible = true}
            ) { Id = "createFileTabs", Visible = true })    
   @Html.SubmitButton("Send")
}
@{ Html.JQueryAjaxForm("newFileForm", "containerComponentContent", string.Empty, "$('#newFileDialog').dialog('destroy');$('#newFileDialog').remove();showMessagebox('New File added');"); }
4

3 に答える 3

0

モーダルを閉じた後、$form.reset()再度使用する前にフォームをリセットする必要があります(つまり)。

于 2012-10-31T09:48:32.090 に答える
0

部分ビューコードを入力してください。

あなたのフォームは2回提出されたと思います。firebugを使用して生成されたリクエストを確認してください。

于 2012-10-31T10:44:39.933 に答える
0

私は解決策を見つけました。その理由はライブイベントのためでした。したがって、送信後、次のようにダイイベントと呼びます。

$('#form').die('click')

そしてそれは動作します!

于 2012-11-06T13:48:58.387 に答える