Desidero dare ai miei utenti la possibilità di utilizzare una casella di testo e premere Invio. La sfida è che ho 5 caselle di testo e 2 opzioni. 3 caselle di testo appartengono a un pulsante e 2 caselle di testo all'altro. Come posso attivare un particolare pulsante in base alla casella di testo in cui si trovava l'utente quando ha premuto Invio?5 Casella di testo, 2 pulsanti. Come assegnare textBox a Button?
risposta
Ho eseguito questo da solo, dove avevo una pagina con due diversi moduli di accesso per i diversi tipi di utenti. Quello che ho fatto è stato separare i due moduli nei propri controlli del pannello ASP e sul pannello impostando il DefaultButton su qualsiasi cosa desiderassi. In questo modo, quando hanno finito di digitare il modulo e di premere il tasto Invio, questo verrà inviato sul pulsante corretto.
Esempio:
<asp:Panel id="panel1" DefaultButton="button1">
<asp:textbox id="textbox1"/>
<asp:textbox id="textbox2"/>
<asp:buton id="button1"/>
</asp:panel>
<asp:panel id="panel2" DefaultButton="button2">
<asp:textbox id="textbox3"/>
<asp:textbox id="textbox4"/>
<asp:button id="button2"/>
</asp:panel>
EDIT: Ecco another method di come farlo assegnando una proprietà OnKeyPress alle vostre caselle di testo. Questa è una soluzione SEPARATO DA QUELLO CHE ho descritto AL TOP
Esempio:
function clickButton(e, buttonid){
var evt = e ? e : window.event;
var bt = document.getElementById(buttonid);
if (bt){
if (evt.keyCode == 13){
bt.click();
return false;
}
}
}
//code behind
TextBox1.Attributes.Add("onkeypress",
"return clickButton(event,'" + Button1.ClientID + "')");
Il codice genera dietro il seguente codice:
<input name="TextBox1" type="text" id="TextBox1" onkeypress="return
clickButton(event,'Button1')" />
Appena discreto – roosteronacid
@rooster: Mi dispiace che ti senti in quel modo. Apparentemente l'autore ha ritenuto che servisse al suo scopo meglio di usare una libreria js completamente separata per risolvere un semplice problema. – TheTXI
@TheTXI: soluzione solida, sì. Ma non è discreto. Anche; Neanche separa chiaramente le varie tecnologie. (Ri-post). – roosteronacid
Utilizzando jQuery Questo è abbastanza facile da eseguire:
$(function()
{
$("#id-of-textbox-1, #id-of-textbox2, etc.").keyup(function (e)
{
if (e.keyCode === 13) $("#id-of-submit-button-1").click();
});
// And for the second group
$("#id-of-textbox-3, #id-of-textbox4, etc.").keyup(function (e)
{
if (e.keyCode === 13) $("#id-of-submit-button-2").click();
});
});
Se si utilizza il controllo di ASP.NET Pulsante, assicurarsi di impostare la proprietà UseSubmitBehavior
su quelli su falso.
Ovviamente, questo fallisce se Javascript è disabilitato ... poi ancora, dato che ASP.NET iirc avvolge tutti i controlli in un unico modulo, lo farebbe con qualsiasi altro metodo se anche JS fosse disabilitato. – Powerlord
ricorda che. Net mescola gli id degli elementi. assicurati di utilizzare <% = textbox1.ClientID%> al posto di "# id-of-textbox-1" – rmw
R. Bemrose: Giusto sei :) – roosteronacid
In questa situazione vorrei raggruppare le relative caselle di testo e il pulsante in un pannello. Panel ha una proprietà DefaultButton che puoi usare. DefaultButton = "IdOfTheDefaultButtonForControlsInThisPanel"
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx
- 1. wpf: pulsanti, caselle di testo, interruzione
- 2. Finestra di avviso con testo seguito con una casella di spunta e 2 pulsanti
- 3. WPF come posso creare una casella di testo in modo dinamico e trovare la casella di testo su un pulsante?
- 4. Come portare ImageView davanti a Button in Android 5?
- 5. Ottenere testo da asp: casella di testo
- 6. Come assegnare dinamicamente i tasti ai pulsanti?
- 7. Come faccio a impostare lo stato attivo a una casella di testo Html.TextBoxFor - MVC 2
- 8. Come stile casella di testo utilizzando CSS in ASP.NET
- 9. Come inserire testo da una casella di testo in selenio
- 10. Come posso associare una casella di elenco a contenuti selezionati in una casella di testo?
- 11. Inserisci casella di testo come formato valuta (WPF MVVM)
- 12. Come selezionare tutto il testo nella casella di testo quando diventa attivo
- 13. AngularJS - Assegnare una casella di controllo a un numero intero?
- 14. come attivare una casella di testo se seleziono un'altra opzione nella casella a discesa
- 15. Per ogni loop della casella di testo
- 16. Pulsanti di completamento automatico e default di TextBox
- 17. Casella di testo numerico con pattern MVVM
- 18. Come assegnare un tasto di scelta rapida (qualcosa come Ctrl + F) a una casella di testo in Windows Form?
- 19. Textbox binding a due vie non attivante
- 20. È possibile assegnare uno stile al testo in un rich textbox in fase di progettazione?
- 21. Proprietà webpart Sharepoint/casella di testo Rich?
- 22. Casella di testo con suggerimenti a discesa
- 23. Come assegnare proprietà focus alla casella di testo in Ruby on Rails?
- 24. visualizzazione dell'immagine nella casella di testo
- 25. Casella di testo WPF in modalità "virtuale"
- 26. wpf textbox text binding
- 27. Come associare la proprietà SelectionStart della casella di testo?
- 28. Casella di testo multilinea con scorrimento verticale automatico
- 29. Come posso consentire ctrl + a con TextBox in winform?
- 30. Utilizzando una casella di testo HTML al posto di un TextBox ASP.NET
Che cosa si intende con "assegnare"? –
Stai cercando di sapere cosa è stato inserito nella casella di testo dopo aver fatto clic sul pulsante specificato? – TStamper
Penso che voglia un pulsante "invio" per ogni casella di testo. Pertanto, se l'uso ha premuto il tasto Invio mentre TextBox "A" aveva attivato l'attivazione di un pulsante, e un pulsante diverso per un diverso TextBox – Inisheer