Получить значение многострочного текстового поля из диалогового окна jquery

0

Я пытаюсь создать всплывающее диалоговое окно на моем веб-сайте asp net с формой для отправки сообщения. Я использую пользовательский контроль asp net:

<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;
    }
});

В коде позади:

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);
    }

И все хорошо, когда TextBox - одна строка (Success! Message: hello), но если я изменяю атрибут на TextMode = "MultiLine", у меня нет значения TextBox (Success! Message :)

Как я могу решить эту проблему?

1 ответ

0
Лучший ответ

Возможно, попробуйте:

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

Как обсуждалось в этом ответе

Ещё вопросы

Сообщество Overcoder
Наверх
Меню