Newsgroup: it.comp.lang.javascript
Titolo: Amnesia?

Ciao a tutti
Come recupero quale dei due tasti e' stato cliccato nella routine
invocata da onsubmit="controlli(this)"
<input type=submit id='esci'  name='action' value='Esci'>
<input type=submit id='salva'  name='action' value='Salva'>
Grazie
-- 
Virgilio

 <input type=submit id='salva'  name='action' value='Salva'>
Non so. Puoi?
Io farei in un altro modo, con un solo submit ed eventuali altri button.
Anche perchè cosa differenzia i due submit? Un submit ha la caratteristica
di assumere il "focus" predefinito del form e di venire "invocato" quando
premi invio su un campo di testo qualsiasi del form stesso, ma se hai due
submit quale dei due in teoria dovrebbe venire invocato?

 wrote:

La soluzione con il <button> e' quella piu' logica ma dovendo
intervenire su una procedura esistente che _legge_ con $_POST le
variabile passate devo trovare il modo di far saltare i controlli nel
caso di _esci_prima di chiamare un'altra pagina .
La pagina chiamata sia da _esci_ che da _salva_ contiene istruzioni che
non posso esportare/ricreare da altra parte.
Ovviamente se non trovo una soluzione al problema dei due submit saro'
costretto a rivedere la logica della conversazione ma preferirei
evitarlo
Ciao
-- 
Virgilio

 evitarlo
Ho capito.
Ma se non riesci a tirar fuori l'informazione dall'evento non so proprio
come potresti fare. E non mi sembra che l'evento porti con se
l'informazione. Se non puoi modificare neanche un carattere del form, dei
submit o del onSubmit mi sa che sei messo male.

 <input type=submit id='salva'  name='action' value='Salva'>
Fossi in te cambierei anche il nome degli oggetti (vai sul sicuro e non
usi una parola riservata):
<input type="submit" id="esci" name="esci" value="Esci">
<input type="submit" id="salva" name="salva" value="Salva">
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 wrote:

Lascio decantare il problema magari la soluzione e' dietro l'angolo e
non la vedo :-)
ciao
-- 
Virgilio

 wrote:



Non ho ben capito su COSA puoi lavorare. Quale il tuo margine di azione.
Mi sembra di capire che tu possa intervenire sul codice Javascript della
funzione, ma non sul codice di markup del pulsante "esci".
Se i browser usati fossero unicamente quelli basati su Gecko, ci sarebbe
la proprietà "explicitOriginalTarget", che potrebbe fare al caso tuo. Ma
dubito che tu abbia questa fortuna. :)
-- 
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."

 Il resto va da sé.
Aha!, perchè, giustamente, anche il valore del submit viene passato nel post
come tutti gli altri campi, non ci avevo mai fatto caso (o non mi ricordavo
proprio)! Naturalmente, allora, puoi fare velocemente la verifica anche in
JavaScript.
Resta invece aperto il caso in cui l'utente prema invio su un campo del
form: in quel caso nessuno dei pulsanti di submit risulta premuto!, se devi
gestire anche quel caso fai attenzione, i_mac.

 JavaScript.
Che proprio non capisco cosa tu voglia intendere.
-- 
"Se c'č qualcosa di piů importante del mio ego su questa nave,


 Al di là del controllo in javascript (che non c'entra niente)...
intendendo specificare - nel caso ci fossero dubbi - che quel che suggerisci
di fare in PHP lo puoi agevolmente fare anche recuperando la stringa di
request via JS, tutto lì.
*Non* pero' (sbaglio?) ancora lato client nel controllo prima del submit,
come forse voleva i_mac.

 request via JS,
Primo, non lo suggerisco io ma il buon Catarsi. :)
Secondo, non lo puoi "agevolmente fare" via JS, ammesso e concesso che
abbia capito cosa intendi dire. Soprattutto, se i dati vengono inviati
via POST (cosa in verità non chiara). Se vengono inviati via GET, puoi
manipolare la querystring, ma dalla pagina che li riceve. In ogni caso
non è ciò che ha richiesto i_mac. Se andasse bene questo, sarebbe bene
che lo facesse via server side, non client side.
-- 
"Se c'è qualcosa di più importante del mio ego su questa nave,


 In ogni caso non è ciò che ha richiesto i_mac.
Ma, guarda, rispondendo ad un thread di JavaScript in cui si chiede
# Come recupero quale dei due tasti e' stato cliccato nella routine
# invocata da onsubmit="controlli(this)"
senza andare sul PHP (anche se poi e' venuto fuori che usa quello) mi sembra
naturale interpretare questo come "Come recupero l'informazione su quale dei
due tasti e' stato cliccato nella routine JavaScript controlli() invocata
dall'onsubmit del form". Giusto?

 form: in quel caso nessuno dei pulsanti di submit risulta premuto!
In questo caso, al server mi pare giungano nome e valore del primo
submit (nel form di i_mac sarebbe "esci"). Dico "mi pare" perché...
perché mi pare :-) insomma, mi pare sia la norma.


 dall'onsubmit del form". Giusto?
Con un onclick su ognuno dei due tasti che imposta una variabile o un
campo hidden del form, cosi` al submit hai memoria di cosa e` stato premuto.
Bye.

 Bye.
Ciao
-- 
Virgilio

 dubito che tu abbia questa fortuna. :)
Ho mai vinto una lotteria nemmeno quelle parrocchiali
Ciao
-- 
Virgilio

 come forse voleva i_mac.
I controlli vorrei lasciarli lato client
-- 
Virgilio

 perché mi pare :-) insomma, mi pare sia la norma.
Certo
-- 
Virgilio

 che lo facesse via server side, non client side.
-- 
Virgilio

 Ho mai vinto una lotteria nemmeno quelle parrocchiali
Quindi immagino che tu debba considerare anche altri browser, o solo
altri browser :)
-- 
~ Non esistono donne brutte. Dipende solo da quanta vodka bevi.
(proverbio russo)

 <input type="submit" id="salva" name="salva" value="Salva">
Questa e' una modifica gia' prevista
Ciao
-- 
Virgilio

 campo hidden del form, cosi` al submit hai memoria di cosa e` stato
premuto.
????? risposta errata? :)

 Certo
Ah: a me con un form così:
<form action="...">
    <input type="text" name="t1"/>
    <input type="submit" name="s1" value="s1"/>
    <input type="submit" name="s2" value="s2"/>
</form>
se clicco [INVIO] su t1 non ritorna il valore nè di s1 nè di s2.
Dov'erro?

       
http://wiki.news.nic.it/QuotarBene
Credevo di aver quotato bene
...cut...
ciao
-- 
Virgilio

 Si questo lo so ma volevo intercettare l'evento e agire a livello client
Non so a cosa possa servire, ma se proprio vuoi farlo segui le
indicazioni di Pellizzari: al clic sul pulsante riempi un campo hidden o
modifica una variabile.




Saro` tonto, ma non ho capito ne` la tua risposta, ne` quella di i_mac... :)
Mi sono scontrato col problema di capire, in presenza di piu` <input
type="submit">, quale sia stato premuto, e ho risolto con un onclick sul
submit stesso che imposta un campo hidden, poi sull'onsubmit del form
recuperavo tale valore.
Mi pareva la soluzione al problema postato.
Bye.

 Mi pareva la soluzione al problema postato.
Non ne sono sicuro, i_mac non si e' espresso ancora con chiarezza; ho
comunque l'impressione che lui non voglia/possa intervenire se non nella
funzione chiamata dall'onSubmit().
Ma se hai una soluzione perchè la posti a me che stavo scrivendo altro? :)

 Ma se hai una soluzione perchè la posti a me che stavo scrivendo altro? :)
Perche` avevi riformulato la domanda in modo piu` comprensibile. :)
Bye.

 modifica una variabile.
Scusa il ritardo, ho _adottato_ la soluzione di Pelliizzari (gli avevo
risposto che non era male).
Come avrai intuito si tratta di intervenire su piu' pagine, di una
applicazione intranet, create con uno scheletro/template identico quindi
l'implementazione e' risultata semplice.
Grazie
Ciao 
-- 
Virgilio

 wrote:

La funzione chiamata dall'onSubmit() deve rimanere inalterata quindi
devo filtrare tutto prima a livello client. La soluzione di Pellizzari
va bene e l'ho usata
Grazie
Ciao
-- 
Virgilio

 Perche` avevi riformulato la domanda in modo piu` comprensibile. :)
Ah, beh, se dici cosi' come faccio a contraddirti? :))
(tanto piu' che la tua soluzione era quella buona)

 Virgilio
VIRGILIO! Lo vedo adesso. In vita mia ho conosciuto un solo Virgilio; la
cosa particolare è che quel Virgilio è mio fratello :-) Cliccare per
credere:
http://www.virgiliocatarsi.com
Tanto, visto che il sito è in costruzione da un secolo (e lo sarà per
almeno un altro), posso tranquillamente fornirne l'url senza tema che
qualcuno mi pensi uno spammer ;)


 qualcuno mi pensi uno spammer ;)
Bene, nella tempistica di costruzione del proprio sito siamo fratelli...
Ciao
-- 
Virgilio