Javascript 无法在jquery ui对话框中获取textarea的值

Javascript 无法在jquery ui对话框中获取textarea的值,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,我试图在对话框中放置一个textarea,如果单击“ok”,我想得到该textarea的值,但我无法得到该值。有什么问题吗 $(文档)。在('click','open',函数(){ var txt=$('#txt').val(); $(“#断开诊断”)。对话框({ 莫代尔:是的, 标题:“对话”, 展示:{ 效果:“比例”, 持续时间:200 }, 可调整大小:false, 按钮:[{ 文字:“ok”, 单击:函数(){ console.log(txt); } }] }); }); #中断诊断

我试图在对话框中放置一个textarea,如果单击“ok”,我想得到该textarea的值,但我无法得到该值。有什么问题吗

$(文档)。在('click','open',函数(){
var txt=$('#txt').val();
$(“#断开诊断”)。对话框({
莫代尔:是的,
标题:“对话”,
展示:{
效果:“比例”,
持续时间:200
},
可调整大小:false,
按钮:[{
文字:“ok”,
单击:函数(){
console.log(txt);
}
}]
});
});
#中断诊断{
显示:无;
}

打开对话框

单击打开,您将捕获textarea值;在该事件期间,将为空

应在单击“确定”时捕获该值

click: function () {
       var txt = $('#txt').val();
       console.log(txt);
}

当对话打开时,您正在尝试获取文本。那里还没有文本

$(文档)。在('click','open',函数(){
$(“#断开诊断”)。对话框({
莫代尔:是的,
标题:“对话”,
展示:{
效果:“比例”,
持续时间:200
},
可调整大小:false,
按钮:[{
文字:“ok”,
单击:函数(){
var txt=$('#txt').val();
console.log(txt);
}
}]
});
});
#中断诊断{
显示:无;
}

打开对话框

您使用#break diag DIV设置CSS样式显示:none

那么你怎么能想象任何东西都能被展示出来呢


因此,当您单击按钮时,display:none属性应该从#break diag DIV

文本区域没有
属性。相反,他们使用
innerHTML
来存储它。尝试使用
$('#txt').html()访问它
$('#txt').text()
$(document).on('click', '#open', function () { 
    $('#break-diag').dialog({
        modal: true,
        title: 'Dialog',
        show: {
            effect: "scale",
            duration: 200
        },
        resizable: false,
        buttons: [{
            text: "ok",
            click: function () {
              var text=  $('#txt').val();
                alert(text);
            }
        }]
    });
});