|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
[Javascript] intercettare tasto enter e lanciare una funzione
ciao a tutti,
come da titolo, vorrei lanciare una funzione alla pressione del tasto enter: praticamente ho un form che viene compilato e con il tasto enter si dovrebbe lanciare una funzione (è una sorta di registratore di cassa, un esercizio che devo fare). il codice funziona e l'ho verificato creando un bottone che lancia la funzione, ora vorrei eliminare il bottone e lanciare la funzione con il tasto invio, potete aiutarmi? Quote:
Quindi ora vorrei trovare la soluzione in Js puro... aiutino? Ultima modifica di Max Ichnusa : 28-02-2015 alle 12:03. |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
nessuno che possa aiutarmi? ci sono sopra ore ma non ne vengo a capo anche se probabilmente è una fesseria
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Devi aggiungere un eventlistener per l'evento "keydown" o "keypress" a ogni tuo input.
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
ci ho provato ma non ci sono riuscito, sbaglio probabilmente qualcosa nelle sintassi o dentro il tag imput nell'html o nel foglio js, dove non saprei proprio cosa mettere a snistra dell .addeventlistener, ho provato di tutto
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Hai provato così?
Codice:
newNumber.addEventListener("keydown", function(e){
if(e.keyCode == 13){
addMyNumber();
}
});
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
ho risolto inserendo questo codice (in grassetto) nel tag input dell'html:
Codice:
<form onsubmit="javascript:addMyNumber();return false;" id="entry">
<input id="newEntry" onBlur="isnum(this)" autofocus placeholder="How Much?" >
</form>
Codice:
var result = 0;
var total = document.getElementById("total");
var newNumber = document.getElementById("newEntry");
var formInput = document.getElementById("entry");
var entries = document.getElementById("entries");
// Alert function, past and copy from google XD
function isnum(obj) {
if (isNaN(obj.value) || parseFloat(obj.value)<0 || parseFloat(obj.value) > 99999999)
{
alert('Hey, only number please!!!');
obj.value="";
obj.focus();
}
}
// End alert function
var addMyNumber = function() {
result = result + parseFloat(newNumber.value);
total.innerHTML = "$ " + result.toFixed(2);
writeNumber();
formInput.reset();
}
var writeNumber = function() {
entries.innerHTML += "$ " + document.getElementById("newEntry").value + "<br>";
}
Ultima modifica di Max Ichnusa : 28-02-2015 alle 23:50. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
Consiglio per il futuro sempre creare un jsfiddle per far capire meglio la tua situazione e di conseguenza e' piu semplice aiutarti
http://jsfiddle.net/qphzgf44/2/ HTML Codice:
<form id="form0">
<input id="input0" placeholder="How Much?" />
</form>
Codice:
var result = 0;
var input = document.getElementById("input0");
var form = document.getElementById("form0");
form.addEventListener("submit", function (e) {
e.preventDefault();
});
input.addEventListener("keydown", function (e) {
if (e.keyCode == 13) {
addMyNumber();
}
});
var addMyNumber = function () {
window.alert('fai qualcosa con addMyNumber');
}
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 769
|
Quote:
Sono un principiante e non conoscevo jsfiddle. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:35.



















