PROBLEMA HTML : Reset non voluto

Dedalo92

Nuovo Utente
72
3
CPU
Intel Core i7 7700k 4.2 Ghz
Dissipatore
Hyper TX3
Scheda Madre
Gigabyte H270 Gaming-3
HDD
SSD Samusng EVO 850
RAM
RAM VENGEANCE 16GB 2400 Mhz (2 blocchi da 8GB).
GPU
GTX 1080 Gigabyte G1 Gaming Edition 8GB
PSU
Corsair CS650M
OS
Windows 10 64 bit
Salve,
questo è il codice html:

Codice:
<head>
    <SCRIPT SRC="Script Java.js"></SCRIPT>
</head>

<body>
    <form method="get" onsubmit="return prova();">
        <input type="field" id="inserimento" size="10">
        <button type="submit">Invia</button>
    </form>
</body>

Questo è invece il codice JavaScript:

Codice:
function prova(){
    var ins=document.getElementById("inserimento");
    console.log(ins.value);
    alert("hai inserito: "+ins.value);
    inserimento.value="Hai scritto: "+ins.value;
}

Dopo l'esecuzione dello script, la pagina viene aggiornata e tutti i campi digitati dall'utente spariscono.
Lo script avrebbe il compito di far apparire nel field la stringa "hai inserito: 'parola inserita' " dopo la pressione del tasto invia!
Di fatto lo script esegue le istruzioni correttamente, ma dopo qualche frazione di secondo si aggiorna e i campi vengono resettati.

In che modo posso modificare il documento senza effettuare il refresh ed evitare la perdita delle modifiche eseguite dallo script?
 

faudiio

Nuovo Utente
109
11
CPU
i7 13700K
Dissipatore
Corsair iCUE H150i ELITE CAPELLIX XT
Scheda Madre
ASUS ROG Strix Z790-A Gaming WIFI
RAM
CORSAIR VENGEANCE DDR5 2x32GB 6000MHz
GPU
RTX 4080 MSI Suprim X
Monitor
Dell Alienware DW3423DW
PSU
Corsair RM850 (2021) 80+ GOLD
Case
Corsair iCUE 5000D RGB AIRFLOW
OS
windows 11
ciao, quello che stai cercando di effettuare è una particolare funzionalità di angularjs e angular(ben diverso da angularjs) che permette l'associazione di un valore ad uno scope. Lo scope è un semplice oggetto che porta con sé dei dati e permette di popolare la pagina con tali dati passati dal javascript. Al click del pulsante tu effettui una submit, quindi i dati vengono inviati al server, difatti non potrai mai vederli dopo la submit. per poter aggiornare il valore di un campo senza effettuare una submit devi utilizzare la più semplice funzionalità di angular: vedi i concetti di scope e interpolazione. Sono davvero poche righe di codice ma se te le passassi non studieresti angular e faresti un mero copia-incolla. Dai un occhiata ad un tutorial, è davvero roba di 4 righe.
 
M

Mursey

Ospite
Intendevi:
HTML:
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <script>
       function prova(){
           var ins = document.getElementById("inserimento");
           console.log(ins.value);
           alert("hai inserito: "+ins.value);
           document.getElementById("inserimento").value="Hai scritto: "+ins.value;
       }  
    </script>
</head>
<body>
    <input type="field" id="inserimento" size="10">
    <button onclick="prova()">Invia</button>
</body>
</html>
?
 
  • Mi piace
Reazioni: cdtux

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
Salve,
questo è il codice html:

Codice:
<head>
    <SCRIPT SRC="Script Java.js"></SCRIPT>
</head>

<body>
    <form method="get" onsubmit="return prova();">
        <input type="field" id="inserimento" size="10">
        <button type="submit">Invia</button>
    </form>
</body>

Questo è invece il codice JavaScript:

Codice:
function prova(){
    var ins=document.getElementById("inserimento");
    console.log(ins.value);
    alert("hai inserito: "+ins.value);
    inserimento.value="Hai scritto: "+ins.value;
}

Dopo l'esecuzione dello script, la pagina viene aggiornata e tutti i campi digitati dall'utente spariscono.
Lo script avrebbe il compito di far apparire nel field la stringa "hai inserito: 'parola inserita' " dopo la pressione del tasto invia!
Di fatto lo script esegue le istruzioni correttamente, ma dopo qualche frazione di secondo si aggiorna e i campi vengono resettati.

In che modo posso modificare il documento senza effettuare il refresh ed evitare la perdita delle modifiche eseguite dallo script?

Puoi risolvere o come scritto da @Mursey oppure con: https://www.w3schools.com/jsref/event_preventdefault.asp

EDIT:
ti scrivo il codice per chiarezza:
HTML:
<form method="get" id="myform">
   <input type="field" id="inserimento" size="10">
   <button type="submit">Invia</button>
</form>
JavaScript:
document.getElementById('myform').addEventListener('submit', prova);

function prova(e){
 e.preventDefault();
 var ins = document.getElementById("inserimento");
 console.log(ins.value);
 alert("hai inserito: "+ins.value);
 inserimento.value="Hai scritto: "+ins.value;
}
 
Ultima modifica:

Dedalo92

Nuovo Utente
72
3
CPU
Intel Core i7 7700k 4.2 Ghz
Dissipatore
Hyper TX3
Scheda Madre
Gigabyte H270 Gaming-3
HDD
SSD Samusng EVO 850
RAM
RAM VENGEANCE 16GB 2400 Mhz (2 blocchi da 8GB).
GPU
GTX 1080 Gigabyte G1 Gaming Edition 8GB
PSU
Corsair CS650M
OS
Windows 10 64 bit
grazie mille per le risposte ragazzi, studierò sia Angular, sia l'event listener!
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili