Newsgroup: it.comp.lang.javascript
Titolo: [?] Onclick tasti tasti

Situazione:
 - tanti html input button con stesso name siffatti:
 <input type="button" name="GD_29"
onclick="Grant(EnumAzione.grantDest,111111,this)"...../>
 <input type="button" name="GD_29"
onclick="Grant(EnumAzione.grantDest,222222,this)"...../>
Ora quello che devo fare è un tasto che mi esegua tutti questi singoli
onclick.
Con getElementsByName li estraggo tranquillamente, dopodiché quello che mi
è venuto in mente è semplicemente di chiamare
Grant(EnumAzione.grantDest,xxxxx,sender) (dove sender è il
getElementsByName corrente).
Problema: il numero fornito col secondo parametro è variabile.
Potrei sì prendermi la onclick e giocarci un po' per estrarlo, Lunedì vedrò
di seguire questa strada.
Se nel frattempo vi venisse qualche altra idea...
E' per intranet, quindi anche un qualcosa di non standard potrebbe andar
bene (non ho provato se per assurdo funziona con IE6
miosingolooggetto.onclick, ma dubito fortemente).
Grazie
Cristiano
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 dell'essere stato "assente" per un bel pezzo ^__-
Eheh. No, credo tu abbia capito benissimo, tranquillo. :)
-- 
.ZER0//sign
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

> andrebbe bene?
:-O
Sinceramente non sapevo funzionasse, non ci avevo proprio pensato.
Certo che va bene, anzi direi eccezionalmente bene!
Lunedě me la provo, per l'intanto grazie a tutti e due.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 Lunedě me la provo, per l'intanto grazie a tutti e due.
Acc...problema: non restituisce il valore di ritorno...
Riassumo:
 - ogni singolo tasto esegue grant(....) che restituisce true/false (se
restituisce false termina il click dei tasti).
Il tasto che mi serve deve premere X button con name uguale:
 for(var
x=0,SO=document.getElementsByName(AzioneDaEseguire.prefisso+numeroOrdine);x<SO.length;x++)
{
  var ris=SO[x].click();
  alert(ris);
  if(!ris) return false; //blocco se errore nel singolo click
 } //ciclo tra i tasti da autorizzare per le singole righe
Ho provato quanto sopra, ris č sempre undefined (la onclick č semplicemente
onclick="grant(...)", ho provato anche con onclick="return grant(...)".
La grant(..) la ho ridotta a grant() {return true}
Qualche idea? Sě, potrei scrivere il risultato in una var globale e
verificare quello, ma che schifo...
-- 
"e mai che mi sia venuto in mente
 di essere piů ubriaco di voi
 di essere molto piů ubriaco di voi"
									  F.D.A.

 Riassumo:
[CUT]
Ho risolto con una var globale
(onclick="RisultatoSingoloGrant=Grant(....)") e verificando quindi il
valore di questa var dopo ogni click().
Mi chiedevo però se esiste un modo per leggere il valore di ritorno...


 verificare quello, ma che schifo...
beh, tanto schifo per schifo.. :)
In realtà una soluzione ci sarebbe,ma prima vorrei capire un po' meglio il
contesto.
-- 
ZER0
~ The Tangent Universe collapsed 5979 days, 6 hours, 43 minutes and 48 seconds ago.
on air ~ "See Saw - Edge"

 che - altrimenti - non riesco a spiegarmi il perché di tale approccio)
Sono N tasti, se uno fallisce avverte con alert e si ferma con un return
false.
Ora devo inserire questo megatastone che preme tutti i tasti di un
determinato ordine. Dato che restituisce true/false la cosa piů semplice
era questa.
Ho risolto con var globale, se dici che da specifiche non restituisce nulla
lascio allora cosě.


 false.
Si, ma.. se ha due tasti, ed esegue la funzione di grand cliccando sopra
uno di questi due, anche se la funzione restituisce "false" ciò non ha
nulla a che vedere su un eventuale pressione del secondo tasto.
Non so se mi spiego. Quel che mi chiedo io, è perché ti ritrovi una
struttura del genere, se poi necessiti di fare "il megatasto" di cui sotto?
Non puoi mettere mano al codice?
-- 
ZER0
~ The Tangent Universe collapsed 5979 days, 6 hours, 52 minutes and 56 seconds ago.


 nulla a che vedere su un eventuale pressione del secondo tasto.
Sono N righe d'ordine, per ogni ordine vanno autorizzate determinate cose
(esempio: eventuale sottocosto, eventuale blocco anagrafico, eventuale
cambio destinazione etc etc).
Ora, per determinati clienti, devo mettere un tasto che autorizzi quanto
sopra per l'intero ordine (oltre che per le singole righe).
Quindi è corretto che, se una mi restituisce false (ossia se per qualche
motivo ha fallito la chiamata xml, oppure se nel frattempo qualcun altro ha
modificato l'ordine, etc), mi devo bloccare e non cliccare le seguenti.
La strada più comoda mi sembrava questa, altrimenti dovrei fare una
function ad-hoc che dato ordine cliente autorizzi l'intero ordine (ma i
singoli tasti fanno anche altro, tipo verificare altri blocchi, importare
in contabilità, far scomparire tasto a video, colorare di verde/rosso la
riga etc etc)...
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 La strada più comoda mi sembrava questa, 
Si, probabilmente allo stato delle cose è la più comoda; però avresti
dovuto utilizzare una logica un po' più modulare.. Non puoi dipendere dalla
"GUI" per la business logic (non mi fare come Dialog,per carità). E'
l'interfaccia che dovrebbe agganciarsi alla logica applicativa.
A questo punto credo che non ti convenga stravolgere ogni cosa;
eventualmente inserisci la variabile globale nella funzione di grant; evita
di esporla nell'attributo.
-- 
ZER0
~ The Tangent Universe collapsed 5979 days, 7 hours, 31 minutes and 37 seconds ago.
on air ~ "Gianluca Grignani - Che ne sarà di noi"

 l'interfaccia che dovrebbe agganciarsi alla logica applicativa.
Eggià...ma se sei di corsissima e hai questa paginona enorme, e ti chiedono
un tasto come quello che sto strutturando, e scopro che eseguendo click()
la risolvo con 3 righe mentre me ne aspettavo 1000-2000, allora direi
proprio che vale la pena piazzarci la var globale e via!
Grazie
