1

フォームを表示する JQuery UI ダイアログ ポップアップがあります。[さらに追加] ボタンをクリックすると、新しいフォームを JQuery UI ダイアログに追加できます。

JQuery UI ダイアログを自動的にスクロールして、[新規追加] ボタンをクリックしたときに新しい空白のフォームをユーザーに表示するにはどうすればよいですか。

部門が追加されました

<div>
    <form id="1">
        <label class="dbright">DashBoard ID:</label><span class="dbleft"><select id="dashboard_id" class="dbSettingDD"><option>-------Select-------</option><option id="#dashboard">Inventory</option><option id="#dashboard2">Quality</option><option id="#dashboard3">Complaints</option></select><br></span>

        <label class="dbright">Filtering parameter:</label><span class="dbleft"><select id="filter_by"><option>-------Select-------</option></select><br></span>

        <label class="dbright">Y-Axis:</label><span class="dbleft"><select id="yAxis"><option>-------Select-------</option></select><br></span>

        <label class="dbright">Chart Tiltle:</label><span class="dbleft"><input type="text" id="title"><br></span>

        <label class="dbright">Chart Type:</label><span class="dbleft"><input type="text" id="chart_type"><br></span>

        <label class="dbright">Main Chart:</label><span class="dbleft"><input type="radio" name="mainchart" value="yes">Yes <input type="radio" name="mainchart" value="No">No<br></span>

    </form>
</div>

ダイアログ

$("#dbSetting_div").dialog({
    height: 315,
    width: 500,
    autoOpen: false,
    modal: true,
    draggable: false,
    buttons: {
        "Save": function () {},
        "Add More": function () {
            l_i++;
            formHtml = "<div>";
            formHtml += "<form id='" + l_i + "'>";
            formHtml += "<label class = 'dbright'>DashBoard ID: </label><span class = 'dbleft'><select id='dashboard_id' class='dbSettingDD'><option>-------Select-------</option>" + dropDownDashboardName + "</select></br></span>";
            formHtml += "<label class = 'dbright'>Filtering parameter: </label><span class = 'dbleft'><select id='filter_by'><option>-------Select-------</option></select></br></span>";
            formHtml += "<label class = 'dbright'>Y-Axis: </label><span class = 'dbleft'><select id='yAxis'><option>-------Select-------</option></select></br></span>";
            formHtml += "<label class = 'dbright'>Chart Tiltle: </label><span class = 'dbleft'><input type='text' id='title'/></br></span>";
            formHtml += "<label class = 'dbright'>Chart Type: </label><span class = 'dbleft'><input type='text' id='chart_type'/></br></span>";
            formHtml += "<label class = 'dbright'>Main Chart: </label><span class = 'dbleft'><input type='radio' name='mainchart' value='yes'/>Yes <input type='radio' name='mainchart' value='No'/>No</br></span>";
            formHtml += "</form>";
            formHtml += "</div>";
            $("#dbSetting_div").append("<p>" + formHtml + "</p>");
            console.log(scroll);
        }
    }
}).css("font-size", "12px");
4

1 に答える 1

1

ここでは、特にフォームの新しい HTML を追加する方法を示します。

まず、HTML をページに追加し、次のような IDnoneを表示します。template

<div id="formTemplate" style="display: none;">
    <form id="1">
        <label class="dbright">DashBoard ID:</label><span class="dbleft"><select id="dashboard_id" class="dbSettingDD"><option>-------Select-------</option><option id="#dashboard">Inventory</option><option id="#dashboard2">Quality</option><option id="#dashboard3">Complaints</option></select><br></span>
        <label class="dbright">Filtering parameter:</label><span class="dbleft"><select id="filter_by"><option>-------Select-------</option></select><br></span>
        <label class="dbright">Y-Axis:</label><span class="dbleft"><select id="yAxis"><option>-------Select-------</option></select><br></span>
        <label class="dbright">Chart Tiltle:</label><span class="dbleft"><input type="text" id="title"><br></span>
        <label class="dbright">Chart Type:</label><span class="dbleft"><input type="text" id="chart_type"><br></span>
        <label class="dbright">Main Chart:</label><span class="dbleft"><input type="radio" name="mainchart" value="yes">Yes <input type="radio" name="mainchart" value="No">No<br></span>
    </form>
</div>

次に、これを使用して、add method必要な素材をすばやく複製し、ディスプレイを削除して、新しいフォームを貼り付けることができます! そのようなもの:

$("#dbSetting_div").css("font-size", "12px").dialog({
    height: 315,
    width: 500,
    autoOpen: false,
    modal: true,
    draggable: false,
    buttons: {
        "Save": function () { /*    do work */ },
        "Add More": function () {
            $("#dbSetting_div").append($('<p />').append($('#formTemplate').clone().show()))
                .animate({ scrollTop: $('#dbSetting_div')[0].scrollHeight}, 500);
        }
    }
});

その中で、.animate新しいフォームが追加されるたびに、ダイアログを一番下までスクロールします。次のように、単純に変更してアニメーションをスキップすることもできます。$("#dbSetting_div").scrollTop($('#dbSetting_div')[0].scrollHeight);

とにかく、それは始めるのに役立つはずです。さらにサポートが必要な場合はお知らせください。とりあえず、以下をチェック

実施例

于 2013-07-11T12:51:53.953 に答える