将数据从JQuery UI Popup返回到表单

时间:2015-09-15 14:55:27

标签: javascript jquery asp.net popup

我有一个表单,当满足某些条件时,会调用JQuery UI Popup。我需要做的是,当按下OK按钮时,将弹出窗口文本框中的内容写入我表单上的隐藏文本框。这可能吗?看起来我只需稍微调整一下我的弹出窗口:

<script type="text/javascript">
    //Total out of range dialog
    $(function () {
        $("#dialog2").dialog({
            modal: true,
            autoOpen: false,
            width: 570,
            buttons: {
                "Ok": function () {
                    //I would think I just need a little code here which
                    // writes the value inside the textbox to the hidden
                    // textbox on the form?
                    $(this).dialog("close");
                }
            }

        });
    });
</script>

然后我的弹出窗口如下:

<div id="dialog2" title="ATTENTION">
    <table style="width:565px; border-spacing:0px; border-collapse:collapse;">
        <tr>
            <td style="width: 240px">
                <asp:Label ID="lblCommentBox" runat="server" Text="Comment:"></asp:Label>
                <asp:TextBox ID="txtCommentBox" runat="server" CssClass="textbox" 
                             TextMode="multiline" Wrap="True" Height="70px" Width="420px" 
                             Font-Size="Small"></asp:TextBox>
            </td>
        </tr>
    </table>
</div>

1 个答案:

答案 0 :(得分:1)

假设你有一个像这样的隐藏字段:

<input type="hidden" id="hfComment" />

或像这样的ASP.NET HiddenField:

<asp:HiddenField ID="hfComment" runat="server"></asp:HiddenField>

那么你是对的,你可以将代码放在你认为应该的地方:

$("#hfComment").val($("#txtCommentBox").val());

<强> PS

有时,ASP.NET会更改ClientID,生成的HTML ID与您创建的.aspx ID不匹配。如果是这种情况,那么最好为此目的使用一些CSS类。

例如:

<!-- Inside your pop-up (etc) -->
<asp:TextBox ID="txtCommentBox" runat="server" CssClass="textbox txt-comment-box" 
                         TextMode="multiline" Wrap="True" Height="70px" Width="420px" 
                         Font-Size="Small"></asp:TextBox>

<!-- And then, your hidden field -->
<asp:HiddenField ID="hfComment" CssClass="hf-comment" runat="server"></asp:HiddenField>

然后你的代码就像:

$(".hf-comment").val($(".txt-comment-box").val());