1

我正在使用.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 并将其重用于此页面上的所有功能。

4

2 回答 2

1

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

var cb = function() { /* stuff with sku, fba_sku, asin */ };
$("#dialog-form").dialog({
    ...
    buttons:{"Done":cb}
});
于 2013-01-31T18:57:34.513 回答
1

您对“'现在'我定义 [...]”的理解可能存在缺陷——不清楚ready函数的定义位置。.load是异步的,将在未来的任意时间完成。

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

于 2013-01-31T18:59:11.243 回答