2012-03-06 2 views
0

Я использую Uploadify для загрузки файла и хочу показать диалог «Да/Нет», когда пользователь отменяет загрузку. Я попробовал следующее, но не отображает диалоговое окно. Любая идея, что не так с кодом ниже?Диалоговое окно «Да/Нет» при отмене загрузки файла

'onCancel': function (event, ID, fileObj, data) {     
       var x = "Are you sure you want to take this action"; 
       $('<div>' + x + '</div>').dialog({ 
        resizable: false, 
        autoOpen: true, 
        buttons: { 
         "Yes": function() { 
          alert('action taken'); 
          $(this).dialog("close"); 
         }, 
         Cancel: function() { 
          $(this).dialog("close"); 
         } 
        } 
       }); 

Любые предложения/указатели будут высоко оценены!

+1

Я считаю, что 'Cancel' должен быть в кавычках '' Cancel'' – elclanrs

+0

@elclanrs почему? '({Отмена:« это работает »})' работает хорошо. – kirilloid

+0

У вас есть хотя бы js-файл (возможно, jquery-ui) для 'dialog'? – kirilloid

ответ

0

Попробуйте это:

var onCancel = function (event, ID, fileObj, data) {     
      var x = "Are you sure you want to take this action"; 
      $('<div>' + x + '</div>').dialog({ 
       resizable: false, 
       buttons: { 
        "Yes": function() { 
         alert('action taken'); 
         $(this).dialog("close"); 
        }, 
        "Cancel": function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 
     } 
+0

Не работает. Функция не вызывается. – GoldenUser

+0

Вы хотите сказать, что функция 'onCancel' не вызывается? –

+0

Вызывается onCancel, но в нем ничего нет. – GoldenUser

0

попробовать следующее для кнопок вместо:

buttons: [{ 
    text: 'Yes', 
    click: function() { 
     alert('action taken'); 
     $(this).dialog("close"); 
    }},{ 
    text: 'Cancel', 
    click: function() { 
     $(this).dialog("close") 
    }}] 
+0

Это также не работает ... – GoldenUser

0

Вы добавление вновь созданных div к body в HTML?

Try:

onCancel: function (event, ID, fileObj, data) { 
    var x = "Are you sure you want to take this action"; 
    var dlg = $('<div />').attr('id', 'RUSure').text(x).dialog({ 
     autoOpen: true, //Make sure it opens automatically. 
     resizable: false, 
     buttons: { 
      "Yes": function() { 
       alert('action taken'); 
       $(this).dialog("close"); 
      }, 
      "Cancel": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }) 
    $('body').append(dlg); 
    $('#RUSure').dialog('open'); 
    //dlg.dialog('open'); //or this, maybe? 
+0

Нет. Зачем мне это нужно? – GoldenUser

+0

'$ ('')' создает новый div, не привязанный к DOM. AFAIK, вам необходимо подключить его к DOM для фактического отображения, чтобы пользователь мог взаимодействовать с ним. Оберните его в '$ ('body'). Append();' присоедините его к 'body' вашего HTML. Вам также может потребоваться присвоить ему идентификатор 'id' и вызвать' $ (id) .dialog ('open'); 'впоследствии. – pete

+0

Спасибо. Не могли бы вы рассказать мне, где я должен разместить этот код в вышеуказанной функции? – GoldenUser

0
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.8.2.js"></script> 
<script src="/resources/demos/external/jquery.bgiframe-2.1.2.js"></script> 
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script> 
<link rel="stylesheet" href="/resources/demos/style.css" /> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#cmdShowDialog').click(function (event) { 
      event.preventDefault(); 
      var $dialog = $('<div>Dynamic Dialog with Buttons.</div>') 
      .dialog 
      ({ 
       title: 'Cancel', 
       width: 300, 
       height: 200, 
       buttons: 
       [{ 
        text: "Ok", 
        click: function() { 
         $dialog.dialog('close'); 
        } 
       }, 
       { 
        text: "Cancel", 
        click: function() { 
         $dialog.dialog('close'); 
        } 
       }] 
      }); 
     }); 
    }); 
</script> 


<div> 
    <asp:Button ID="cmdShowDialog" runat="server" Text="Show Dialog" /> 
</div> 

Try это будет работать наверняка

Смежные вопросы