Modifica il valore di input quindi invia modulo in JavaScript

Attualmente sto lavorando a un modulo di base. Quello che voglio fare con questo modulo è che quando premi invio / pulsante per prima cosa cambia il valore di un campo e poi invia il modulo come al solito. Sembra tutto un po ‘come questo:

E questo è quanto sono arrivato con JavaScript. Cambia il valore di “myinput” a 1 ma non invia il modulo. Sono davvero un noobie di JavaScript quindi perdonami se questa è solo una domanda troppo semplice, ma non mi sto prendendo il controllo.

 function DoSubmit(){ document.myform.myinput.value = '1'; document.getElementById("myform").submit(); } 

Potresti fare qualcosa come questo, invece:

 

Quindi modifica la funzione DoSubmit per restituire true, indicando che “è OK, ora puoi inviare il modulo” al browser:

 function DoSubmit(){ document.myform.myinput.value = '1'; return true; } 

EDIT: Sarei anche diffidente nell’usare eventi onclick su un pulsante di invio; l’ordine degli eventi non è immediatamente evidente e la richiamata non verrà chiamata se l’utente invia, ad esempio, il ritorno in una casella di testo.

 document.getElementById("myform").submit(); 

Questo non funzionerà come il tuo tag form non ha ID.

Cambialo in questo modo e dovrebbe funzionare:

 

ecco un semplice codice, devi impostare un id per l’input qui chiamalo “myInput”:

  var myform = document.getElementById('myform'); myform.onsubmit = function(){ document.getElementById('myInput').value = '1'; myform.submit(); }; 

No. Quando il tuo tipo di input è inviato, dovresti avere un evento onsubmit dichiarato nel markup e poi fare le modifiche che vuoi. Significa, avere un onsubmit definito nel tag del modulo.

Altrimenti cambia il tipo di input in un pulsante e poi definisci un evento onclick per quel pulsante.

Stai provando ad accedere a un elemento basato sull’attributo name che funziona per i postback sul server ma javascript risponde all’attributo id . Aggiungi un id con lo stesso valore del name e tutto dovrebbe funzionare correttamente.

 
function DoSubmit(){ document.getElementById("myinput").value = '1'; return true; }

Il mio problema è stato che stavo assegnando come document.getElementById("myinput").Value = '1';

Si noti la V maiuscola in Valore? Una volta lo cambio in piccolo caso cioè; valore, i dati hanno iniziato a postare. Strano come non stava dando alcun errore Javascript pure

Puoi usare l’evento onchange