58 messaggi dal 31 ottobre 2003
Ciao, in un form di inserimento, ho la necessità che alla pressione di una textbox, dropdownlist etc. il fuoco si sposti sull'elemento successivo del form; ora asp net trasforma i button in submit ed inserisce l'evento onSubmit al form stesso, cosicchè non riesco in javascript a fare quello che voglio. C'è una soluzione possibile ?

Grazie

Jk
5.610 messaggi dal 09 febbraio 2002
Contributi
Jk ha scritto:

alla pressione di una textbox


ciao, intendi dire alla pressione del tasto invio mentre il focus è in una textbox? Vorresti fare in modo che premendo invio il focus si sposti al campo successivo?

Uhm, questa funzionalità viene già assolta dal tasto TAB e credo che usare l'invio per lo stesso scopo possa disorientare l'utente. L'utilizzo comune del tasto invio infatti è quello di scatenare il submit.

Ad ogni modo, non c'è problema perché puoi intercettare il submit col javascript e annullarlo, se vuoi. Metti un onsubmit sul tuo form, così:
<form runat="server" onsubmit="return false">
Un po' drastico... così il form non potrà MAI essere inviato. Una soluzione più realistica è quella di ottenere il valore di ritorno (true o false) da una funzione javascript:
<script type="text/javascript">
function controllaSubmit(){
 if (situazione)
   return false; //annullo il submit
 else
   return true; //consento il submit
}
</script>
<form runat="server" onsubmit="return controllaSubmit()">


Tuttavia, spiega meglio cosa devi realizzare. Ad esempio, se devi controllare che i dati siano a posto prima che il form possa essere inviato, potresti utilizzare i Validator Controls di Asp.Net. Ti faranno risparmiare un sacco di tempo.

ciao

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!
58 messaggi dal 31 ottobre 2003
BrightSoul ha scritto:
Jk ha scritto:

alla pressione di una textbox


ciao, intendi dire alla pressione del tasto invio mentre il focus è in una textbox? Vorresti fare in modo che premendo invio il focus si sposti al campo successivo?

Uhm, questa funzionalità viene già assolta dal tasto TAB e credo che usare l'invio per lo stesso scopo possa disorientare l'utente. L'utilizzo comune del tasto invio infatti è quello di scatenare il submit.

Ad ogni modo, non c'è problema perché puoi intercettare il submit col javascript e annullarlo, se vuoi. Metti un onsubmit sul tuo form, così:
<form runat="server" onsubmit="return false">
Un po' drastico... così il form non potrà MAI essere inviato. Una soluzione più realistica è quella di ottenere il valore di ritorno (true o false) da una funzione javascript:
<script type="text/javascript">
function controllaSubmit(){
 if (situazione)
   return false; //annullo il submit
 else
   return true; //consento il submit
}
</script>
<form runat="server" onsubmit="return controllaSubmit()">


Tuttavia, spiega meglio cosa devi realizzare. Ad esempio, se devi controllare che i dati siano a posto prima che il form possa essere inviato, potresti utilizzare i Validator Controls di Asp.Net. Ti faranno risparmiare un sacco di tempo.

ciao


Hai ragione nel dire che già il TAB assolve a questa funzione, ma se il cliente è abituato a premere invio per spostarsi al controllo successivo (tipicamente di applicazioni windows form) cosa ci si può fare ? Quello che devo fare è appunto semplicemente spostare il fuoco da un controllo ad un altro con l'invio fino all'ultimo che lo sposta sul Button dopodichè eseguire il submit

Grazie

Jk
5.610 messaggi dal 09 febbraio 2002
Contributi
Jk ha scritto:
se il cliente è abituato a premere invio per spostarsi al controllo successivo (tipicamente di applicazioni windows form) cosa ci si può fare?


mah, proverei a parlargli del vantaggio di poter inviare il form rapidamente da qualsiasi campo si trovi, senza usare il mouse ma solo premendo l'invio.
Io penso che le richieste dei clienti non vadano sempre assecondate ciecamente ma solo dopo essersi assicurati che abbiano compreso la soluzione che tu gli proponi e le implicazioni tecniche e operative di quello che invece ti chiedono loro.

Comunque, qui è poco rilevante, si tratta solo di far funzionare un tasto. Vedi questo esempio, sfrutta jQuery per spostare il focus da un campo all'altro, alla pressione di invio.

http://www.latentmotion.com/downloads/enter-to-tab.html
Dovrai adattare questa linea:
if (iname !== 'Submit'){
Al posto di Submit metti il testo che appare sul bottone che usi per scatenare il postback.

Questa soluzione usa un approccio unobtrusive, ovvero non ti costringe a modificare nulla nelle tue asp:Textbox, asp:DropDownList, ecc.. ma devi solo includere jQuery nella pagina e incollare lo script tra i tag <head>.

ciao
Modificato da BrightSoul il 19 gennaio 2012 22.16 -

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC