对话框显示相同的结果

时间:2014-01-12 09:44:25

标签: jquery-ui jquery jquery-ui-dialog

我有这个对话框,当你点击图标时显示文件名。当我第一次单击它时,对话框将为空,然后我关闭它并重新打开对话框将显示名称(通过ajax)。然后,当我再次关闭对话框并单击其他文件图标时,它会显示第一个文件名。然后当我再次关闭它并重新打开它时,它将显示正确的文件名。为什么要这样做?

这是我的javascript

$('.edit').click(function(e){

    e.preventDefault();
    var auth = $(this).attr('id');

    $.ajax({
        type: 'POST',
        url: 'ajax/edit_filename.php',
        data: {auth:auth},
        success: function(result){
            filename = result;
        }
    });

    $( "#dialog" ).dialog({
      modal: true,
      resizable: false,
      title: 'Edit file name',
      buttons: {
          "Close": function() {
              $(this).dialog("destroy");
              $(this).dialog("cancel");
          }
      } 
    });

    $('.ui-dialog-content').html('<input type="text" value="'+filename+'"/>');
});

1 个答案:

答案 0 :(得分:0)

我弄清楚我做错了什么,我在得到ajax响应之前打电话给对话

这是正确的javascript,这件事发生在你身上

$('.edit').click(function(e){

        e.preventDefault();
        var auth = $(this).attr('id');

        $.ajax({
            type: 'POST',
            url: 'ajax/edit_filename.php',
            data: {auth:auth},
            cache: false,
            success: function(result){
                filename = result;
            }
        });
        $.post( "ajax/edit_filename.php", { auth:auth })
           .done(function( data ) {

            $( "#dialog" ).dialog({
              modal: true,
              resizable: false,
              title: 'Edit file name',
              buttons: {
                  "Close": function() {
                      $(this).dialog("destroy");
                      $(this).dialog("cancel");
                  }
              } 
            });
            $('.ui-dialog-content').html('<input type="text" value="'+data+'"/>');
        });
    });