Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
DataSet

Ao Digitar Procura Valores Na Combo

Question

Olá pessoal, segue este exemplo que achei nos scripts prontos aqui do fourm, o código faz o seguinte, a pessoa digita num input e ele faz a busca na combo, deixando selecinado a opção que mais se assemelha ao digitado no input.

Eu preciso de algo assim, mas não posso ter um input, a pessoa clica na combo, daí ela fica azul, pois está selecionada, e vai digitando ali mesmo, e ele vai fazendo a pesquisa

http://scriptbrasil.com.br/forum/index.php...st&p=207163

Veja esse exemplo acima, como fazer a mesma coisa sem usar input? usando a própria combo ?

Valeu

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

não conheço uma forma de fazer isso... de fato, nos navegadores se você selecionar uma combobox, e digitar uma letra qualquer, ele faz uma busca automática única e exclusivamente pela "primeira letra".

Share this post


Link to post
Share on other sites
  • 0

vê se ajuda:

<script language="JavaScript">
var strLocalizarItemComboValor        = "";
var strLocalizarItemComboIndice        = 0;

function LocalizarItemCombo( pobjCampo , pobjkeyCode ){

var intContador        = 0;
var lSucesso        = false;
    
    if( pobjCampo.selectedIndex != strLocalizarItemComboIndice ){
        
        strLocalizarItemComboValor        = "";
        strLocalizarItemComboIndice        = pobjCampo.selectedIndex;
    }
    
    strLocalizarItemComboValor        += String.fromCharCode( pobjkeyCode );
    
    for( intContador = 0; intContador < pobjCampo.length; intContador++ ){
        
        if( pobjCampo.options[ intContador ].text.substring( 0 , strLocalizarItemComboValor.length ).toUpperCase( ) == strLocalizarItemComboValor.toUpperCase( ) ){
            
            pobjCampo.selectedIndex                        = intContador;
            strLocalizarItemComboIndice                    = intContador;
            intContador                                    = pobjCampo.length;
            lSucesso                                    = true;
        }
    }
    
    if( lSucesso == false ){
        
        strLocalizarItemComboValor = strLocalizarItemComboValor.substring( 0 , strLocalizarItemComboValor.length - 1 );
    }
    
    event.returnValue    = '';
    event.keyCode        = null;
}

document.onreadystatechange    = fcnIniciaControleCopiarColar;


function LocalizarItemCombo( pobjCampo , pobjkeyCode ){

var intContador        = 0;
var lSucesso        = false;
    
    if( pobjCampo.selectedIndex != strLocalizarItemComboIndice ){
        
        strLocalizarItemComboValor        = "";
        strLocalizarItemComboIndice        = pobjCampo.selectedIndex;
    }
    
    strLocalizarItemComboValor        += String.fromCharCode( pobjkeyCode );
    
    for( intContador = 0; intContador < pobjCampo.length; intContador++ ){
        
        if( pobjCampo.options[ intContador ].text.substring( 0 , strLocalizarItemComboValor.length ).toUpperCase( ) == strLocalizarItemComboValor.toUpperCase( ) ){
            
            pobjCampo.selectedIndex                        = intContador;
            strLocalizarItemComboIndice                    = intContador;
            intContador                                    = pobjCampo.length;
            lSucesso                                    = true;
        }
    }
    
    if( lSucesso == false ){
        
        strLocalizarItemComboValor = strLocalizarItemComboValor.substring( 0 , strLocalizarItemComboValor.length - 1 );
    }
    
    event.returnValue    = '';
    event.keyCode        = null;
}


function LocalizarItemCombo( pobjCampo , pobjkeyCode ){

var intContador        = 0;
var lSucesso        = false;
    
    if( pobjCampo.selectedIndex != strLocalizarItemComboIndice ){
        
        strLocalizarItemComboValor        = "";
        strLocalizarItemComboIndice        = pobjCampo.selectedIndex;
    }
    
    strLocalizarItemComboValor        += String.fromCharCode( pobjkeyCode );
    
    for( intContador = 0; intContador < pobjCampo.length; intContador++ ){
        
        if( pobjCampo.options[ intContador ].text.substring( 0 , strLocalizarItemComboValor.length ).toUpperCase( ) == strLocalizarItemComboValor.toUpperCase( ) ){
            
            pobjCampo.selectedIndex                        = intContador;
            strLocalizarItemComboIndice                    = intContador;
            intContador                                    = pobjCampo.length;
            lSucesso                                    = true;
        }
    }
    
    if( lSucesso == false ){
        
        strLocalizarItemComboValor = strLocalizarItemComboValor.substring( 0 , strLocalizarItemComboValor.length - 1 );
    }
    
    event.returnValue    = '';
    event.keyCode        = null;
}

</script>
<SELECT style="WIDTH:90%" name="UNID_VENDA" onKeyPress="LocalizarItemCombo( this , event.keyCode )">
                                    <OPTION value="">-- Selecione uma opção --</OPTION>
                                    <option value="amarelo">amarelo</option><option value="azul">azul</option><option value="verde">verde</option><option value="preto">preto</option><option value="rosa">rosa</option><option value="marronl">marron</option><option value="laranja">laranja</option><option value="Preto">Preto - </option><option value="roxo">roxo</option><option value="branco">branco</option>
                                </SELECT>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148483
    • Total Posts
      644138
×
×
  • Create New...