简体   繁体   中英

How to refresh only the contents of jquery dialog while opening it for the second time

i am opening a jquery dialog in a click function. But if i close the dialog and open it for the second time, the contents inside the dialog remains the same.. I need the text boxes inside the dialog to be empty while i open it for the consecutive times..

This is my aspx code:

<div>
<span id="id_PrivateSpace" style="color: #88b807; margin-left: 839px;
                            margin-top: -12px; cursor: pointer; display: block">Create</span>
</div>


<div id="thedialog" style="display: none; overflow: hidden">
                    <table id="table" style="border-spacing: 7px 7px; margin-left: 5px">
                        <tr>
                            <td>
                                <span class="SubHeading" style="font-size: 10pt;">Private Space Name </span>
                            </td>
                            <td>
                                <asp:TextBox ID="txt_spacename" runat="server" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <span class="SubHeading" style="font-size: 10pt;">Private Space Description </span>
                            </td>
                            <td>
                                <asp:TextBox ID="txt_spacedesc" TextMode="MultiLine" runat="server" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <span class="SubHeading" style="font-size: 10pt;">Users </span>
                            </td>
                            <td>

                                <input type="text" id="txt_users" />
                            </td>
                            <td>
                                <asp:Button ID="btn_addusers" Text="Add" Style="margin-left: 10px;" runat="server" />
                            </td>
                            <td rowspan="5">
                                <table id="users_grid" align="left">
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <span class="SubHeading" style="font-size: 10pt;">DL </span>
                            </td>
                            <td>
                                <asp:TextBox ID="txt_Add_dl" TextMode="MultiLine" runat="server" />
                            </td>
                        </tr>
                    </table>
                    <input type="button" id="Btn_Submit" value="Create" style="margin-left: 335px; margin-top: 35px;"
                        runat="server" />
                </div>

This is my js code:

 $("#thedialog").dialog({
                autoOpen: false,
                title: 'Create Private space',
                modal: true,
                position: 'center',
                width: 900

            });


            $('#id_PrivateSpace').click(function() {
                $('#thedialog').dialog('open');
                return false;
            });

what should i add to refresh only the contents of the dialog?

I guess you can try:

$('#id_PrivateSpace').click(function() {
    $("#thedialog").find('input:text, textarea').val('').attr('placeholder','Enter some value');
    $("#thedialog").find('select').val('');//you need to have and option like <option value="">Please Select</option> in your select options list
    $('#thedialog').dialog('open');
    return false;
}); 

And for your aspx Dropdownlist make sure you set AppendDataBoundItems to true; and set the OnDataBinding event

<asp:DropDownList id="myDdl" runat="server" OnDataBinding="Ddl_Databinding" >
</asp:DropDownList>

And in your code behind, Add:

protected void Ddl_Databinding(object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList)sender;
    ddl.Items.Add(new ListItem("Please Select", ""));
}

Add the following function on close to destroy the particular instance of your jquery dialog:

close: function()
    {
        $(this).dialog('close');
        $(this).dialog('destroy');
        $(this).html("");
    },

This is the code I had to use having similar problem when I was creating dialogs on the fly.

$('#id_PrivateSpace').click(function() {
  $("#thedialog input[type='text']").val('');
  $("#thedialog textarea").html('');
  $('#thedialog').dialog('open');
  return false;
}); 

Try,

<form id="myform>
<div id =thedialog> ....... </div>
</form>

When you close the dialog box, call the below function

    document.getElementById("form1").reset();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM