在DOM加载后,AJAX调用在模态窗口中获取textarea的内容

时间:2014-05-19 20:47:02

标签: jquery ajax modal-dialog

我正在使用Messi作为模态窗口。在这种情况下,我向模态窗口添加了一个文本区域,但由于DOM已经加载,因此无法访问其中的值。我目前的代码如下:

        new Messi('<i class="fa fa-envelope fa-3x pull-left"></i><strong>Send a message to ' + co + '. </strong><br />Check the Messages tab to converse with  ' + co + '.'
            + '<label class="textarea">'
            + '<textarea id="themessage" name="notes" placeholder="Enter Message" rows="5" style="margin-top:11px"></textarea>'
            + '</label>'
            + '<div class="note">Enter Message</div>', {
            title: 'Message ' + co ,
            titleClass: '',
            modal: true,
            closeButton: true,
            unload:false,
            buttons: [{
                id: 0,
                label: 'Send Message',
                class: '',
                val: 'Y'
            }],
            callback: function (val) {
                if (val === 'Y') {
                    var themsg = $("textarea#themessage").val();
                    $.ajax({
                        type: 'post',
                        url: 'controller.php',
                        data: {
                            'processMessage': id,
                            'recipient':recipient,
                            'company': co,
                            'msgsubject':msgsubject,
                            'body': themsg,
                            'title':encodeURIComponent(name)
                        },
                        beforeSend: function () {
                            parent.animate({
                                'backgroundColor': '#FFF'
                            }, 400);
                        },
                        success: function (msg) {
                            $('html, body').animate({
                                scrollTop: 0
                            }, 600);
                            $('#msgholder').html(decodeURIComponent(msg));
                        }
                    });
                }
            }

        });

在回调函数中,我尝试抓取值,但没有运气

var themsg = $("textarea#themessage").val();

我还尝试在初始点击功能中设置变量来调用模态窗口,但由于在编辑模态文本区域之前加载了DOM,因此它无法正常工作。

 $('body').on('click', 'a.mod-button', function () {
                var themsg = $("textarea#themessage").val();
                console.log(themsg);
            });

当用户在模态窗口中单击“提交”时,如何获取新输入的文本?

1 个答案:

答案 0 :(得分:0)

也许你可以尝试使用

var themsg = $("#themessage").val();

而不是:

var themsg = $("textarea#themessage").val();

如果文本框已经有Id =“themessage”,我认为回调正在寻找该元素。