Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: selectedIndex

  1. #1

    selectedIndex

    ciao a tutti.

    Sto facendo un form per inserire bbcode

    in una select ho messo questa istruzione:
    codice:
    <select name="align" onchange="bbcode(this.value); this.selectedIndex=0;">
    ...
    </select>
    come vedete dovo l'invio dei dati in una funzione deve tornare al primo option.

    Ma non và dove sbaglio???

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    4
    Già provato a cambiare il selctedIndex all'interno della funzione script? Cioè all'interno di bbcode(), dopo che hai già effettuato le operazioni sul indice selezionato, lo imposti = 0

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    26
    codice:
    <select name="align" onchange="var v=this.value; this.selectedIndex=0; bbcode(v); ">
    ...
    </select>
    questo risolverà i sintomi (cambierà l'indice selezionato) ma non la causa (l'errore generato nella funzione bbcode() che ferma sicuramente il codice).

    Posta la funzione bbcode e vediamo di darle un antibiotico

  4. #4
    this.value
    non esiste sull' oggetto select.
    probabilmente intendevi
    this.options[this.selectedIndex].value

  5. #5
    truelives come non esiste io lo sempre usato e funge.

  6. #6
    questo è la funzione del bbcode:

    codice:
    var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
    var regexp = new RegExp("[\r]","gi");
    
    function bbcode(selec)
    {
    	if(selec!=""){
    	if (isMozilla) 
    	{
    	// Si on est sur Mozilla
    
    		oField = document.forms['newevent'].elements['txtevent'];
    
    		objectValue = oField.value;
    
    		deb = oField.selectionStart;
    		fin = oField.selectionEnd;
    
    		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
    		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
    		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
    
    	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
    			
    		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
    		oField.selectionStart = strlen(objectValueDeb);
    		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
    		oField.focus();
    		oField.setSelectionRange(
    			objectValueDeb.length + selec.length + 2,
    			objectValueDeb.length + selec.length + 2);
    	}
    	else
    	{
    	// Si on est sur IE
    		
    		oField = document.forms['newevent'].elements['txtevent'];
    		var str = document.selection.createRange().text;
    
    		if (str.length>0)
    		{
    		// Si on a selectionné du texte
    			var sel = document.selection.createRange();
    			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
    			sel.collapse();
    			sel.select();
    		}
    		else
    		{
    			oField.focus(oField.caretPos);
    		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
    			oField.focus(oField.value.length);
    			oField.caretPos = document.selection.createRange().duplicate();
    			
    			var bidon = "%~%";
    			var orig = oField.value;
    			oField.caretPos.text = bidon;
    			var i = oField.value.search(bidon);
    			oField.value = orig.substr(0,i) + "[" + selec + "]" + oField.focus() + "[/" + selec + "]" + orig.substr(i, oField.value.length);
    			var r = 0;
    			for(n = 0; n < i; n++)
    			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
    			pos = i + 2 + selec.length - r;
    			//placer(document.forms['news'].elements['newst'], pos);
    			var r = oField.createTextRange();
    			r.moveStart('character', pos);
    			r.collapse();
    			r.select();
    
    		}
    	}
    	}
    }
    non mi piace molto come funzione ma non ho avuto tempo per studiarne un'altra.

  7. #7
    Originariamente inviato da techno
    truelives come non esiste io lo sempre usato e funge.
    L' oggetto select non ha un attributo value. Lo hanno i tag input, ma non il tag select.
    Affinchè la keyword 'this' possa indirizzare un 'value' da dentro un gestore di evento, occorre che l' attributo value appartenga alla definizione xml del tag. Ma, appunto, l'oggetto select non ha mai un value. Ce lo hanno invece le options di una select, ma non la select.
    Quando dici che lo hai sempre usato, ti riferisci al fatto che lo hai usato su itag input, ma non sui select - infatti quando ce lo usi, su un select, non funziona.

    Per cui te lo ridico:
    this.value
    non esiste sull' oggetto select.
    probabilmente intendevi
    this.options[this.selectedIndex].value

  8. #8
    ok io faccio questo:

    <select onchang="controllo(this.valu)">
    ...
    </select>

    e mi funziona te lo ripeto mi funziona.

    poi chi ti dice che non ha l'attributo value eccolo:


    <select name="month" onchange="controllo(this.valu)">
    <option value="">mese</option>
    <option value="01">gennaio</option>
    <option value="02">febbraio</option>
    <option value="03">marzo</option>
    <option value="04">aprile</option>
    <option value="05">maggio</option>
    <option value="06">giugno</option>
    <option value="07">luglio</option>
    <option value="08">agosto</option>
    <option value="09">settembre</option>
    <option value="10">ottobre</option>
    <option value="11">novembre</option>
    <option value="12">dicembre</option>
    </select>

    mo non me so rincoglionito ao

  9. #9
    forse non ci siamo capiti: il tag select non ha l'attributo value.
    Infatti
    <select onchang="controllo(this.valu)">
    a parte la assenza delle 'e', non ha value.
    per averlo, dovrebbe essere:
    <select value="ciao" onchange="controllo(this.value)">

    Insomma, hai pensato a provare a fare come suggerisco io intanto?

    <select onchange="controllo(this.options[this.selectedIndex].value)">

    i tag option hanno il value.

  10. #10
    ah ok ora si certo che select non ha value ma ti ripeto che con this.value funziona benissimo o fatto come proposta da whiles e va bene ora provo col tuo metodo e ti faccio sapere

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.