javascript код убирает фокус с текстового поля

Статус
В этой теме нельзя размещать новые ответы.

vilk108

Профессор
Регистрация
17 Дек 2007
Сообщения
174
Реакции
39
следующий код постоянно вызывается на странице для ИЕ -
if(document.selection && document.selection.empty) {
document.selection.empty ();
}

И для остальных браузеров
else if(window.getSelection () && window.getSelection ().removeAllRanges) {
window.getSelection ().removeAllRanges();
}

Из за этого кода убирается фокус с текстового поля.
скажите пожалуйста что нужно сделать чтобы этот код не влиял на текстовое поле с определенным id или на все текстовые поля???



Частично самому получилось сделать. Но мой способ начинает через пару кликов тормозить поэтому не подходит, а в ие совсем коряво работает. Мой способ ниже(на jquery) -

HTML:
if(document.selection && document.selection.empty) {
    
     var elq = document.getElementById('inputdiagonal');
     var diagonalfocus_ = $j("#diagonalfocus").html();
     if(!diagonalfocus_) {
      document.selection.empty ();
     }
     
                 $j("#inputdiagonal").click(function(){
                     var elq = document.getElementById('inputdiagonal');
                     $j("#diagonalfocus").html('diagonal_focus');
                     setTimeout(function() {document.getElementById('inputdiagonal').focus();                     
                      $j("#inputdiagonal").blur(function(){
                      var elq = document.getElementById('inputdiagonal');
                      $j("#diagonalfocus").empty();
                    });                     
                   }, 100);
                     
                    $j("#inputdiagonal").blur(function(){
                     var elq = document.getElementById('inputdiagonal');
                     $j("#diagonalfocus").empty();
                    });
                });
                
                
                
                
                
                $j("#inputdiagonal2").click(function(){
                     var elq = document.getElementById('inputdiagonal2');
                     $j("#diagonalfocus").html('diagonal_focus');
                     setTimeout(function() {document.getElementById('inputdiagonal2').focus(); 
                     
                $j("#inputdiagonal2").blur(function(){
                     var elq = document.getElementById('inputdiagonal2');
                     $j("#diagonalfocus").empty();
                  })                     
                }, 100);
                     
                   $j("#inputdiagonal2").blur(function(){
                     var elq = document.getElementById('inputdiagonal2');
                     $j("#diagonalfocus").empty();
                  });                     
                });

                                

                

                
                
                
                
                
}
else if(window.getSelection () && window.getSelection ().removeAllRanges) {            
                
                     var diagonalfocus_ = $j("#diagonalfocus").html();


                    if(!diagonalfocus_) {
                     window.getSelection ().removeAllRanges();
                    }
                     
                $j("#inputdiagonal").click(function(){
                     var elq = document.getElementById('inputdiagonal');
                     $j("#diagonalfocus").html('diagonal_focus');
                     document.getElementById('inputdiagonal').focus();
                                          
                   $j("#inputdiagonal").blur(function(){
                    $j("#diagonalfocus").empty();
                   });                                   
                });    
                
                $j("#inputdiagonal2").click(function(){
                     var elq = document.getElementById('inputdiagonal2');
                     $j("#diagonalfocus").html('diagonal_focus');
                     document.getElementById('inputdiagonal2').focus();
                                          
                   $j("#inputdiagonal2").blur(function(){
                    $j("#diagonalfocus").empty();
                   });                                   
                });    
                
                
                            


                

        

}
 
А не проще после выполнения скрипта просто поставить на тестовое поле фокус ?
 
я в своем примере ставил фокус. Но в хроме фокусировка начинала иногда тормозить. Вобщем решил вопрос так, что код который мешал работает теперь только для фаирфокса, а для остальных браузеров он не обязательно нужен
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху