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

    [Form] Aggiornare input box

    Ciao,
    ho un problema di cui non capisco le cause. io ho un select box che in base alla scelta punta a un javascript che splitta il value del selectedindex.

    tra i dati c'è il nome degli input box associati.scomposti i dati dovrei aggiornare gli input. Ed effettivamente il value è corretto, ma a video non cambia il valore al suo interno.

    come mai?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Spesso la descrizione testuale del problema non e' sufficiente per azzardare la diagnosi... questo e' uno di quei casi

    Posta un pochino di codice

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    codice:
    function SplitCombo(NomeBox)
    	{
    	//Questa funzione serve a dividere i dati presi dal Select Box per poi passarli in modo corretto a SommaQta
    	/*
    	SommaQta(Nome, MetaSvz, Qta, Fascia, Valore)
    	*/
    	Str=window.document.InsertForm.elements[NomeBox].value.split("'|'")
    	Nome = Str[0];
    	MetaSvz = Str[1];
    	Qta = Str[2];
    	Fascia = Str[3];
    	Valore = Str[4];
    	/*
    	Prelevati i valori da passare alla funzione SommaQta, devo settare gli input con le quantità corrette
    	1 quella del selectIndex corrente a 0 tutti gli altri
    	*/
    	NumeroIndex = window.document.InsertForm.elements[NomeBox].length;
    	NomeMeta = Nome.substring(0,2)
    	//Eseguo il ciclo
    	for(b=1;b<=(NumeroIndex-1);b++)
    		{
    		NomeElemento = NomeMeta + "_" + b;
    		if(b==window.document.InsertForm.elements[NomeBox].selectedIndex)
    			{//Porto l'input 0N_X a 1
    			window.document.InsertForm.elements[NomeElemento].value = 10
    			}	
    			else
    			{//Porto l'input 0N_X a 0
    			window.document.InsertForm.elements[NomeElemento].value = 0
    			}
    }
    questo è il codice che fà lo split sul selectbox e per ogni option c'è un campo input associato che inzialmente è a 0 come valore. La funzione dovrebbe azzerare tutti gli input escluso quello che è associato alla selezione del select box

  4. #4
    ho capito che..

    nel ciclo finale la variabile NomeElemento è corretta ovvero

    12_1
    12_2
    12_3
    etc...

    ma se provo a fare alert su
    window.document.InsertForm.elements[NomeElemento].name mi restituisce i nomi degli innput sbagliati!!!cioè

    NomeElemento = 12_1 (questo valore è il name dell'input che devo variare)

    window.document.InsertForm.elements[NomeElemento].name mi restituisce il name di altri input box.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    window.document.InsertForm.elements[""+NomeElemento].name

    trovando dei numeri come primo elemento il js suppone (erroneamente) che si tratti dell'indice...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    niente, non funziona lo stesso. quali altre soluzioni si possono adottare?

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per evitare di doverci inventare una pagina di prova... un link alla tua sarebbe gradito

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    lo avrei fatto prima, per poter aiutare chi mi aiuta, ma sto lavorando su un server della società che è dentro una lan e non ha un'indirizzo pubblico e poi i dati che deve lavorare li cattura tramite delle DLL inserite su IIS.

    Taglio la testa al toro e faccio un ciclo sugli elementi fino a quando non trovo il nome corrispondente, gli elementi sono 168!

  9. #9
    ok con il ciclo while sugli indici ho risolto..peccato x questo errore di interpretazione di JS

    Grazie a tutti comunque.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.