Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    selezionare testo da una posizione in poi

    E' possibile selezionare un testo in un input text da una certa posizione in avanti?

    In particolare sto cercando di fare uno script che, iniziando ad inserire un testo, propone in automatico una stringa completa presa da un array la quale inizia per il testo inserito fin'ora. Di conseguenza mi serve selezionare il testo proposto a partire dalla posizione in cui sono arrivato a scrivere.
    Questo è lo script:

    var array_titoli = new Array();
    array_titoli[0] = "Pippo";
    array_sottot[1] = "Pluto";
    array_sottot[2] = "Paperino";

    function cambia_titolo(objCampo){
    var stringa = objCampo.value;
    if (objCampo.name == 'titolo'){
    array_da_usare = array_titoli;
    } else {
    array_da_usare = array_sottot;
    }
    if (stringa.length > 0){
    for (i=0; i<array_da_usare.length; i++){
    if (array_da_usare[i].substr(0, stringa.length) == stringa){
    objCampo.value = array_da_usare[i];
    }
    }
    }
    }

    N.B.: il parametro objCampo che viene passato è l'oggetto input text del form.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    questo fa quello che chiedi, con IE e MOZ
    l' unica cosa è che devi riconoscere il tasto premuto:
    x fare le maiuscole premi anche lo shift, per cancellare serve l' uso dell' apposito tasto
    quando usi almeno questi 2 tasti lo script non deve scattare altrimenti non funziona corettamente
    codice:
    <html>
    <head>
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    var array_titoli = new Array(); 
    var array_sottot = new Array(); 
    array_sottot[0] = "pippo"; 
    array_sottot[1] = "pluto"; 
    array_sottot[2] = "paperino"; 
    
    function cambia_titolo(objCampo){ 
    var stringa = objCampo.value; 
    if (objCampo.name == 'titolo'){ 
    array_da_usare = array_titoli; 
    } else { 
    array_da_usare = array_sottot; 
    } 
    if (stringa.length > 0){
    	var selectionStart=stringa.length
    	for (i=0; i<array_da_usare.length; i++){
    		if (array_da_usare[i].substr(0, stringa.length) == stringa){
    			objCampo.value = array_da_usare[i];
    			var selectionEnd=objCampo.value.length
    			if (objCampo.setSelectionRange) {
     				objCampo.focus();
    				objCampo.setSelectionRange(selectionStart, selectionEnd);
    			}
    			else if (objCampo.createTextRange) {
    				var range = objCampo.createTextRange();
    				range.collapse(true);
    				range.moveEnd('character', selectionEnd);
    				range.moveStart('character', selectionStart);
    				range.select();
    			}
    		break;
    		} 
    	}
    } 
    } 
    </script>
    </head>
    <body>
    <form name="modulo">
    <input type="text" name="sottotitolo" onkeyup="cambia_titolo(this)" />
    </form>
    </body>
    </html>
    ciao

  3. #3
    aggiungendo il controllo

    event.keyCode != 16 && event.keyCode != 8 && event.keyCode != 46

    funziona perfettamente.

    Grazie 1000. :metallica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.