在它外部定义的对话框中的 var 返回未定义的 jQuery

Var in dialog defined outside of it returns undefined jQuery

本文关键字:var 返回 未定义 jQuery 对话框 外部 定义      更新时间:2023-09-26

我正在使用.load函数打开一个对话框,然后我想从对话框中定义对话框函数外部变量的字段中获取值,但它返回未定义,所以我的问题是,我如何定义对话框函数外部的变量以在其中使用它,

我想做的一个例子。

首先,我请求对话框:

$( '#dialog-form' ).load('table_models/add_to_table.php',function(){
     $( '#dialog-form' ).dialog('open');
});

现在我定义变量和对话框弹出窗口:

$(function() {
    var sku = $( "#sku" ),
    fba_sku = $( "#fba_sku" ),
    asin = $( "#asin" ), 
    $( "#dialog-form" ).dialog({
         title: 'New Product',
         autoOpen: false,
         height: 'auto',
         width: 'auto',
         modal: true,
         buttons: {
                "Done": function() {
                             // I want to get the var sku, fba_sku, asin here
                 }
         },
     }
}

我希望你明白我想做什么,如果没有,我会尝试更好地解释它,

谢谢

编辑

从页面上的按钮请求的.load函数,然后对话框函数在外部 JS 文件上,我想首先定义对话框表单中字段的 var 并将其重用于此页面上的所有函数。

尝试在对象外部定义函数,如下所示:

var cb = function() { /* stuff with sku, fba_sku, asin */ };
$("#dialog-form").dialog({
    ...
    buttons:{"Done":cb}
});

你对"'现在'我定义[...]"的理解可能有缺陷——目前还不清楚ready函数的定义在哪里。 .load是异步的,将在将来的任意时间完成。

获取 "Done" 函数中的元素值,以便用最新值填充它们。