0

個別のダイアログ ボックスで開く 1 つのカミソリ ビューに 2 つのフォームがあります。フォームは jquery post.. を使用して送信されます。

最初の形式は完全に機能しますが、2 番目の形式はまったく認識されず、データをシリアル化しようとすると空の文字列が返されます。

以下のコード:

@using (Html.BeginForm("SaveElectricReading", "Store", FormMethod.Post, new { id = "frmSaveElectricReading" }))
{
    <div id="electricDialog" style="display: none;" title="Electric Readings">
        <p>
            Please ensure the electric readings have been entered!
        </p>
        <table width="100%">
            <tr>
                <th>
                    Serial:
                </th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="Serial" />
                </td>
            </tr>
            <tr>
                <th>
                    Reading:
                </th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="Reading" />
                </td>
            </tr>
            <tr>
                <th>
                    Comment:
                </th>
            </tr>
            <tr>
                <td>
                    <div class="textwrapper">
                        <textarea rows="5" cols="10" name="Comment"></textarea>
                    </div>
                </td>
            </tr>
        </table>
    </div>
}

@using (Html.BeginForm("SaveWaterReading", "Store", FormMethod.Post, new { id = "myform" }))
{
    <div id="waterDialog" style="display: none;" title="Water Readings">
        <p>
            Please ensure the water readings have been entered!
        </p>
        <table width="100%">
            <tr>
                <th>
                    Serial:
                </th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="WaterSerial" />
                </td>
            </tr>
            <tr>
                <th>
                    Reading:
                </th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="WaterReadingsdfsdf" />
                </td>
            </tr>
            <tr>
                <th>
                    Comment:
                </th>
            </tr>
            <tr>
                <td>
                    <div class="textwrapper">
                        <textarea rows="5" cols="10" name="WaterComment"></textarea>
                    </div>
                </td>
            </tr>
        </table>
    </div>
}

function showWaterDialog() {
    var $dialog = $('#waterDialog').dialog({
        autoOpen: false,
        modal: true,
        width: 400,
        height: 400,
        buttons: {
            Submit: function () {
                //                $('#frmCreateStore').submit();
                var data = $('#frmSaveWaterReading');

                $.post("/Store/SaveWaterReading",
                    $("#frmSaveWaterReading").serialize(),
                    function () {
                        $("#waterDialog").dialog("close");
                    });
                //$(this).dialog("close");
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        }
    });

    $dialog.dialog('open');
}
4

1 に答える 1

1

フォームを含むダイアログを表示するための jquery 関数では、次のように、そのダイアログ コンテンツをページの 2 番目のフォームに追加する必要がありました。

$("#waterDialog").parent().appendTo($("form").eq(1)[0]);

于 2012-04-05T10:25:50.330 に答える