简体   繁体   English

从jQuery对话框获取多行文本框值

[英]Get multiline textbox value from jquery dialog

I try to make a popup dialog in my asp net website with form for send message. 我试图在我的asp网络网站中创建一个带有发送消息表单的弹出对话框。 I do in asp net user control: 我在ASP网络用户控件中执行以下操作:

<asp:Panel runat="server" ID="panelMain" ToolTip="" style="display: none">
    <asp:Label runat="server" ID="Label1" AssociatedControlID="txtMessage" Text=""></asp:Label>:
    <br />
    <asp:TextBox runat="server" ID="txtMessage" ></asp:TextBox>
    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" 
        ControlToValidate="txtMessage" Display="Dynamic" 
        ErrorMessage=""></asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="butOk" runat="server" Text="" OnClick="butOk_Click"/>
    <asp:Button ID="butCancel" runat="server" Text="" CausesValidation="false" />
</asp:Panel>
<script type="text/javascript">
    $(document).ready(function()
    {
        $(".lbPopupLink").click(function() { //click hyperlink form main page
        $("#<%= this.panelMain.ClientID %>").css("display", "block");
        $("#<%= this.panelMain.ClientID %>").dialog
        ({
            autoOpen: false,
            modal: true,
            width: 400,
            height: 300,
            dialogClass: "popupDialog",
            resizable: false,
            overlay: { opacity: 0.5, background: "black" },
        }).dialog("open");

            return false;
        });

        $("#<%= this.butCancel.ClientID %>").click(function()
        {
            $("#<%= this.panelMain.ClientID %>").dialog("close");
            return false;
        });

        $("#<%= this.butOk.ClientID %>").click(function()
        {
            return $("#<%= this.panelMain.ClientID %>").dialogCloseAndSubmit($(this).attr("id"));
        });
    });
</script>

$.fn.extend({
    dialogCloseAndSubmit: function(butOkId)
    {
        var dlg = $(this).clone();
        $(this).dialog("destroy").remove();
        dlg.css("display", "none");
        $("form:first").append(dlg);
        $("#" + butOkId, dlg).click();
        return true;
    }
});

In code behind: 在后面的代码中:

protected void butOk_Click(object sender, EventArgs e)
    {
        // will be send mail
        Literal str_message = new Literal();
        str_message.Mode = LiteralMode.PassThrough;
        str_message.Text = "<br />Success!Message: " + this.txtMessage.Text;
        this.Page.Controls.Add(str_message);
    }

And it's all good when TextBox is one line (Success!Message: hello), but if I change attribute to TextMode="MultiLine" I have no TextBox value (Success!Message:) 当TextBox为一行时,一切都很好(成功!消息:你好),但是如果我将属性更改为TextMode =“ MultiLine”,我将没有TextBox值(成功!消息:)

How can I solve this problem? 我怎么解决这个问题?

Maybe Try: 也许尝试:

$(this).find('textarea[id*=txtMessage]').val();

As discussed in this answer 如本答案所述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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