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

「「今」私が定義する[...]」の理解に欠陥がある可能性がありますready。関数がどこで定義されているかは不明です。.load非同期であり、将来の任意の時間に完了します。

関数内の要素値を取得して"Done"、最新の値で埋められるようにします。

于 2013-01-31T18:59:11.243 に答える
1

次のように、オブジェクトの外部で関数を定義してみてください。

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