Problème avec AJAX

Bonjour à tous,
Encore un petit pb avec Ajax. Dans un input submit, je cherche à ce que la fonction Ajax se déclenche uniquement lors de la validation de l'input au lieu de la déclencher périodiquement par un timer dans la fonction.
Est ce possible ?
Merci de vos réponses.
ci-joint les fichiers

type or paste code here
//fichier index.h
const char MAIN_page[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<body>
<div>
//<div id="demo">
<h1>Automate STORE</h1>
  <h2>Vitesse du vent : <span id="VALvent">0</span> km/h<br>  
  Vitesse MAX du vent pour retractation (Km/h): <span id="vmx">0</span><br>
  Delai de retractation (en sec) : <span id="delrv">0</span><br>
  </h2>   
</div>
<script>
// fonction AFFICHAGE DU VENT EN COURS tt les 2 sec
setInterval(function() 
{
  getData();
}, 2000);
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) 
    {
      document.getElementById("VALvent").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "readVENT", true);
  xhttp.send();
}
setInterval(function() 
{
  getDatav();
}, 2000);
// fonction AFFICHAGE du vent MAX pour retractation
function getDatav() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) 
    {
      document.getElementById("vmx").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "ventm", true);
  xhttp.send();
}
setInterval(function() 
{
  getDatad();
}, 2000);
// fonction AFFICHAGE du délais pour retractation
function getDatad() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) 
    {
      document.getElementById("delrv").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "delRT", true);
  xhttp.send();
}
</script>
<FORM METHOD="POST"action="/submitv">
<input type="number" name="ventmax" value='VENT MAX' min='15' max='80'>
<input type="submit" value="Entrer valeur du VENT MAX (entre 15 et 80 Km/h )"><br>
</form>
<FORM METHOD="POST"action="/submitr">
<input type="number" name="delrval" value='delai' min='20' max='300'>
<input type="submit" value="Entrer delai pour retractation en sec (20 a 300)"><br>
</form>
</body>
</html>
)=====";
************************************************************************************
//Fichier .ino
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "index.h"    //HTML et js
long randNumber;      //pour test vitesse du vent
bool flstart = true;  //flag restauration const. si redémarrage
String ventmax;
String delrval;
String delretrac;
int temp2;  //pour tout faire
const char* ssid = "samb_LT";
const char* password = "05131325";
ESP8266WebServer server(80);  //Serveur port 80
void handleRoot() {
  server.send(200, "text/html", MAIN_page);  //Envoi page principale
}
//affichage valeur du vent
void Af_vent() {
  int a = randNumber;  //pour test
  String tt = "45";
  String valeurVent = String(a);
  server.send(200, "text/plain", valeurVent);  //envoi valeur du vent
  server.send(200, "text/plain", tt);
}
void Af_vmrt() {  //affichage vitesse du vent max a la retractation
  String temp1 = ventmax;
  server.send(200, "text/plain", temp1);
  Serial.print("affichage vmx : ");
  Serial.println(temp1);
  delay(200);
}
void Af_delrt()  //affichage du DELAIS a la retractation
{
  String delrv = delrval;
  server.send(200, "text/plain", delrv);
  Serial.print("affichage delrv : ");
  Serial.println(delrv);
  delay(200);
}
void Sub_vmaxrt()  //traitement saisie vitesse vent maxi
{
  ventmax = server.arg("ventmax");
  server.send(200, "text/html", MAIN_page);
  delay(500);
}
void Sub_delrt()  //traitement saisie delai de retractation
{
  delrval = server.arg("delrval");
  server.send(200, "text/html", MAIN_page);
  delay(500);
}
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //IP address assigned to your ESP
  server.on("/", handleRoot);         //Page Principale
  server.on("/readVENT", Af_vent);    //Traitement affichage du vent actuel
  server.on("/submitv", Sub_vmaxrt);  //saisie vitesse vent max a la retractation
  server.on("/submitr", Sub_delrt);   //saisie DELAIS a la retractation
  server.on("/ventm", Af_vmrt);       //affichage vitesse du vent max a la retractation
  server.on("/delRT", Af_delrt);      //affichage du DELAIS a la retractation
  server.begin();  //Start server
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();     //Handle client requests
  randNumber = random(100);  //pour test valeur vent
}

il faut appeler ta fonction getDatad dans un onsubmit sur le formulaire.

Bonjour Terwal,
Merci de ta réponse mais je démarre avec Ajax et ta réponse dépasse largement mes limites de compréhension !!
J' ai regardé dans w3schools pour essayer de comprendre un exemple de "onsubmit" et l'appliquer sans succès !
Pourrait tu me fournir un exemple dans mon contexte ?
Merci d'avance.

Ce n'est pas de l'Ajax du coup, mais du HTML et javascript.

W3schools fournis des exemples, donc je ne comprends pas trop ce que tu n'arrive pas à appliquer.
Que veux tu exactement faire ?
D'après ce que j'ai compris, tu veux lorsque tu valide ton formulaire, en plus d'envoyer les informations collectées par le formulaire, appeler exécuter une requête HTTP pour récupérer une information(Ajax) et modifier ton HTML avec l'information récupérée(manipulation du DOM par du javascript)

Donc pour faire ça, il faut comme montre les exemples w3school, définir une propriété "onsubmit" et lui donner ta fonction "getDatad" à appeler lorsque tu aura valider ton formulaire.

OK, c'est bien ce que j'ai essayer de faire, mais ça plante !!
Je suis vraiment nul avec Ajax !!

Ce n'est pas forcément l'Ajax qui plante, donc peut être que c'est pas en ajax que tu es .... :slight_smile:
Je plaisante, pas la peine de me répondre sur ma blague de lourdaud, dis nous ce qui ne fonctionne pas.

vous ne pouvez pas faire cela

la réponse à une requête est unique. Le code 200 que vous envoyez dit que la requête s'est bien terminée. le client une fois reçue cette réponse n'est plus en attente

les fonctions send reconnues sont