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

Тема в разделе "Другие языки", создана пользователем vilk108, 7 июн 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. vilk108

    vilk108

    Регистр.:
    17 дек 2007
    Сообщения:
    174
    Симпатии:
    41
    следующий код постоянно вызывается на странице для ИЕ -
    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();
                       });                                   
                    });    
                    
                    
                                
    
    
                    
    
            
    
    } 
    
     
  2. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    А не проще после выполнения скрипта просто поставить на тестовое поле фокус ?
     
  3. vilk108

    vilk108

    Регистр.:
    17 дек 2007
    Сообщения:
    174
    Симпатии:
    41
    я в своем примере ставил фокус. Но в хроме фокусировка начинала иногда тормозить. Вобщем решил вопрос так, что код который мешал работает теперь только для фаирфокса, а для остальных браузеров он не обязательно нужен
     
Статус темы:
Закрыта.