2009-11-25 4 views
0

У меня есть элемент управления ASP.NET, содержащий флажок. Я хочу, чтобы фокус оставался в этом флажке при нажатии. Вот что я использую:MooTools: установите фокус на клик

<script type="text/javascript"> 
    window.addEvent("domready", function() { 

     var acceptCheckId = $("<%= this.accept.ClientID %>").getElement("input"); 

     acceptCheckId.addEvent("click", function() { 
      acceptCheckId.focus(); 
     }); 

    }); 
</script> 

я могу получить флажок элемент в acceptCheckId переменной в порядке, но когда я нажимаю на него, фокус не изменяется. Что дает?

Если добавить предупреждение в, оповещение никогда не срабатывает:

acceptCheckId.addEvent("click", function() { 
     alert("foobar"); 
     acceptCheckId.focus(); 
    }); 

ответ

0

Что делает ваш выход HTML выглядеть? невозможно сказать, что случилось с кодом без знания того, как написан ваш контент <%%>.

0

Попробуйте использовать setTimeout

setTimeout(function(){ 
    acceptCheckId.focus(); // this may execute ok 
},200); 

При нажатии кнопки элемент, элемент получит фокус, и вы не можете сосредоточиться другой элемент в настоящее время, так как этот элемент получит фокус первый, и использовать setTimeout , может задерживаться когда-то, и после этого вы можете установить фокус на любой элемент.

посмотреть порядок выполнения нажмите: клик -> выполнить OnClick функции -> получить фокус ->

На этапе 2, функция OnClick, вы установите фокус на другой элемент, но, после выполнения в onclick, сам элемент должен получить фокус, это делается веб-браузером!

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