Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120

    cambiare valore di un input con javascript

    Salve a tutti, sto lavorando su correzioni di un codice scritto da altri e mi ritrovo con una porcheria da gestire senza stravolgerla.
    Mi spiego..
    devo fare in modo che in una pagina jsp un form si comporti diversamente a seconda che si spinga il tasto submit o che si spinga invio da tastiera (il perchè è complicato da spiegare, fidatevi solo del fatto che non posso fare diversamente )

    Ho pensato di gestire la cosa con un input nascosto, normalmente il suo valore è "N" quindi se spingo invio da tastiera viene chiamato il submit del form e nella azione seguente leggo "N".
    Volevo poi fare in modo che spingendo il tasto submit, prima di fare effettivamente submit mi cambiasse il valore dell'input in "Y"
    Ho gestito la cosa in questo modo:

    codice:
    <form name="nomeForm" action='<%=azione%>' method="POST">
    ...
    ...
    <input name="simula" type="hidden" value="N" /> 
    <input name="submit" type="submit" value="Accetta" 
    onClick='this.form.simula.value=\"Y\";this.form.submit()'/>
    però non funziona su un altro form l'avevo gestito nello stesso modo e andava.. che sbaglio??
    grassie grassie

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non è il massimo dell'eleganza ma vista la situazione in cui ti trovi... arresta per qualche attimo l'invio del form

    onclick='this.form.simula.value=\"Y\";setTimeout(\ "this.form.submit()\", 150);'
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    <input name="submit" type="submit" value="Accetta" onClick='this.form.simula.value=\"Y\";this.form.su bmit()'/>


    this identifica l'oggetto corrente, che in quel caso è sbagliato perchè identifica il bottone

    cambialo in

    codice:
    <input name="submit" type="submit" value="Accetta" 
    onClick="document.nomeform.simula.value='Y';document.nomeform.submit()"/>
    ovviamente nomeform devi sostituirlo con il "name" del tuo form

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  4. #4
    Originariamente inviato da Shagrat
    <input name="submit" type="submit" value="Accetta" onClick='this.form.simula.value=\"Y\";this.form.su bmit()'/>


    this identifica l'oggetto corrente, che in quel caso è sbagliato perchè identifica il bottone

    cambialo in

    codice:
    <input name="submit" type="submit" value="Accetta" 
    onClick="document.nomeform.simula.value='Y';document.nomeform.submit()"/>
    ovviamente nomeform devi sostituirlo con il "name" del tuo form

    non è sbagliato perchè qualsiasi elemento del form possiede tra le sue proprietà il riferimento all'oggetto form contenitore che è appunto form.

  5. #5
    Originariamente inviato da unbreakable9
    non è sbagliato perchè qualsiasi elemento del form possiede tra le sue proprietà il riferimento all'oggetto form contenitore che è appunto form.
    ficco...questa mi mancava proprio...non si finisce mai di imparare
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    grazie mille shagrat ora funziona!!!

    io e javascript non andiamo molto d'accordo!!!

  7. #7
    Originariamente inviato da yaya
    grazie mille shagrat ora funziona!!!

    io e javascript non andiamo molto d'accordo!!!
    in realtà mi sa che funzionava già da subito anche il tuo script...hai solo fatto un escaping di troppo, non era necessario scrivere \"Y\" bastava il "Y", perchè l'apertura e la chiusura dell'onclick lo hai fatto con gli apici singoli


    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    sì possibile solo che io avevo copiato il codice da un customtag in cui era obbligatorio scriverlo così.. io sema :berto:

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