2014-02-09 1 views
2

Я не могу настроить фокус на текстовое поле Bootbox автоматически.Bootbox.prompt() установить фокус на текстовое поле

вот мой код: функция setCode (myCode) {

bootbox.confirm("Enter your PIN: <input id='pin_code' type='password' name='pin_code'></input>", 
      function(result) { 
       if(result) 
       console.log($("#pin_code").val()); 
      }); 
     $("#pin_code").focus(); 
    }; 

Возможно, что-то о коде bootbox является получение в пути?

+1

Возможно, вы должны принять правильный ответ ... – Legionar

ответ

0

Вы можете попробовать этот код

var box = bootbox.confirm("Enter your PIN: <input id='pin_code' type='password' name='pin_code'></input>", 
     function(result) { 
      if(result) 
      console.log($("#pin_code").val()); 
     }); 
box.on('shown',function(){ 
    $("#pin_code").focus(); 
}); 
4

Вы можете зарегистрировать обработчик shown событий, который устанавливает фокус (как это было предложено @Shiny). Однако, с Bootstrap 3 и Bootbox v4.x.x, показанное событие имеет место с именами, и для регистрации обработчика событий необходимо использовать полное имя shown.bs.modal. Таким образом, код будет:

var box = bootbox.confirm("Enter your PIN: <input id='pin_code' type='password' name='pin_code'></input>", 
    function(result) { 
     if(result) 
     console.log($("#pin_code").val()); 
    }); 

box.on('shown.bs.modal',function(){ 
    $("#pin_code").focus(); 
}); 

Попытка установить фокус, как вы были не работает, потому что диалог не виден сразу после вызова bootbox.confirm. Элементы, которые не видны, не могут быть сосредоточены.

+0

спасибо, работает как шарм :) – Legionar