2013-05-26 5 views
7

Я пытаюсь использовать это:Bootbox обратного вызова не работает должным образом

$('#delete').live('click',function(){ 
       var result; 
       bootbox.confirm("Are you sure?", function(response){ 
         result=response; 
       }); 
       alert(result); 
       return result; 
      }); 

Но когда кнопка нажата:

оповещение показан первым и только после этого bootbox шоу подтвердить диалог.

Я хочу вернуть ответ, но если я его сделаю изнутри, он не работает, потому что он возвращает ответ от обратного вызова, но не $ ('# devicedelete'). Live ('click', function() {});

Btw Я пытаюсь представить форму, основанную на ответе. Поэтому, если я верну '' форму '' будет отправлен, иначе, если он вернет 'false', форма не будет отправлена.

Пожалуйста, проверьте это: http://pastebin.com/9H3mxE9Y

У меня есть один большой стол с флажками для каждой строки, пользователь может выбрать флажков и нажмите на любую из кнопок «удалить», «копия» и т.д., и форма должна быть представлена.

Благодаря

ответ

4

Диалог является асинхронной, вы можете предотвратить действие по умолчанию сразу же, а затем вызвать представить, если пользователь принимает. Вот пример: http://jsfiddle.net/ty5Wc/3/

$('#delete').on('click', function (e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function (response) {   
     if(response) { 
      $('#form').submit(); 
     } 
    }); 
}); 
$('#form').submit(function() { 
    //do your validation or whatever you need to do before submit 
}); 

Edit: После разговора больше с OP, он также хотел передать значение кнопки в строке запроса, мое решение для этого здесь: http://jsfiddle.net/ty5Wc/5/

$('#delete').on('click', function (e, confirmed) { 
    if (!confirmed) { 
     e.preventDefault(); 
     bootbox.confirm("Are you sure?", function (response) { 
      if (response) { 
       $('#delete').trigger('click', true); 
      } 
     }); 
    } 
}); 
$('#form').submit(function (e) { 
    //do your validation or whatever you need to do before submit 
}); 
+0

Привет, я хотите вернуть значение ответа, ответ будет либо «истинным», либо «ложным». но если я делаю это изнутри, то он не работает, потому что он возвращает ответ от обратного вызова. –

+0

Это происходит по щелчку, к чему это будет возвращаться? Во всяком случае, вместо того, чтобы делать то, что вы хотите сделать после его возвращения, просто вставьте их в функции и вызовите эти функции из обратного вызова. – smerny

+0

Спасибо, пожалуйста, проверьте мой вопрос сейчас, я его отредактировал –

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

  • Нет связанных вопросов^_^