Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52

    Come assegnare il tasto "Invio"/"Enter" ad un determinato input "button"/"submit"?

    il mio sito è cosi strutturato:
    codice HTML:
    <form method=post>
    <submit name="sub1">
    <input type=text name=txt1>
    <input type=text name=txt2>
    <input type=text name=txt3>
    <submit name="sub2">
    </form>
    Il problema è che quando clicco invio voglio che vada in esecuzione il sub2 e non il sub1 come accade, qualcuno sa dirmi come risolvo?

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    a parte l'inesistenza del tag submit... la cosa potrebbe essere gestibile via js.

    definisci i criteri

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    a parte l'inesistenza del tag submit... la cosa potrebbe essere gestibile via js.

    definisci i criteri
    Perdona la mia ignoranza, mi faresti vedere come posso gestire via js?

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    meglio se prima definisci i criteri (così che, chi vuole cimentarsi, sa di che parlare ), intanto sposto in js

    buon lavoro

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, per default credo sia preso in considerazione il primo pulsante secondo l'ordine in cui si trova sul documento.

    Chiaramente si può risolvere tramite JavaScript ma provo a dare una soluzione con l'uso di un trucco senza JavaScript.
    Se stai usando HTML5 puoi adoperare la proprietà formaction, e a questo punto (considerato quanto detto inizialmente) puoi inserire un pulsante fittizio, con l'action di default, messo prima degli altri e nascosto con display:none.
    codice:
    <form action="pagina_default" method="post">
      <button type="submit" name="sub2" style="display:none">Submit fittizio</button>
      <button type="submit" formaction="altra_pagina" name="sub1">Submit 1</button>
      <input name="txt1">
      <input name="txt2">
      <input name="txt3">
      <button type="submit" name="sub2">Submit 2</button>
    </form>
    In questo caso, premendo invio, verrà eseguito sempre il submit del primo pulsante, anche se nascosto, il quale fa riferimento alla proprietà action di default, specificata nel form stesso. La stessa action chiaramente viene considerata se si clicca sull'ultimo sub2.

    Ho testato limitatamente, quindi è una soluzione da prendere con le pinze.
    In alternativa puoi attendere che qualcuno ti indichi qualche soluzione JavaScript, se preferisci.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    killerworm il tuo metodo e molto interessante e potrebbe tornarmi utile in futuro, ma ho l'esigenza di farlo in javascript però non so da dove partire, quello che voglio fare è attribuire il pulsante invio a un determinato submit, (se poi riesco ad attribuirlo ad un' <a> la cosa sarebbe migliore.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non puoi in un form il tasto submit deve essere univoco, devi usare dei button. Perchè sei obbligato ad usare js?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    in un form il tasto submit deve essere univoco
    cosa intendi? (il form può contenere più di un input submit)
    Ultima modifica di Vincent.Zeno; 30-10-2015 a 14:20

  9. #9
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    Posso contribuire con una parte di codice che ho normalizzato?

    intanto nei miei form definisco a inizio script legato alla pagina il nome del form
    formname="nomedelform"
    nei mii form lego il nome del form al nome dello script togliendo gli ultimi 4 byte punto ed estenzione ma questa è una mia scelta.

    poi costruisco una funzione javascript che mi serve a lanciare le pagina da vari punti
    per esempio
    function PageCall(Page) {
    document.<%=formname%>.action = Page;
    document.<%=formname%>.submit();
    return true;
    }
    la definizione del form per la pagina
    <form name="<%=formname%>" id="<%=formname%>" action="" method="post" >
    e nelle definizioni dei pulsanti oppure altro faccio la chiamata alla funzione
    per esempio se devo chiamare lo script che si chiama "clienti.asp"
    tramite
    <input type="button" value= " clienti" onclick="PageCall('clienti.asp')" >
    questa pagina verra chiamata poi se devi passare i parametri via querystring devi fare tu le modifiche opportune altrimenti il form chiamato puo leggere i campi con request.form dal programma chiamante.

    spero di essere stato utile ....
    *** NB
    anche se può sembrare ASP ...
    è javascript lato client... i campi asp sono usati am puoi metterci i campi fissi

    ciao

    ...
    Ultima modifica di vic53; 30-10-2015 a 18:40
    Vic53

  10. #10
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    Posso contribuire con una parte di codice che ho normalizzato?

    intanto nei miei form definisco a inizio script legato alla pagina il nome del form
    formname="nomedelform"
    nei mii form lego il nome del form al nome dello script togliendo gli ultimi 4 byte punto ed estenzione ma questa è una mia scelta.

    poi costruisco una funzione javascript che mi serve a lanciare le pagina da vari punti
    per esempio


    la definizione del form per la pagina

    e nelle definizioni dei pulsanti oppure altro faccio la chiamata alla funzione
    per esempio se devo chiamare lo script che si chiama "clienti.asp"
    tramite

    questa pagina verra chiamata poi se devi passare i parametri via querystring devi fare tu le modifiche opportune altrimenti il form chiamato puo leggere i campi con request.form dal programma chiamante.

    spero di essere stato utile ....
    *** NB
    anche se può sembrare ASP ...
    è javascript lato client... i campi asp sono usati am puoi metterci i campi fissi

    ciao

    ...
    ATT....

    nel caso si usino pagine statiche di tipo HTML e non ASP...

    la funzione PageCall(Page) diventa
    function PageCall(Page) {
    document.location=Page;
    }
    ciao
    Vic53

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.