Je reçois actuellement l'erreur indiquée dans le titre et j'ai essayé de résoudre le problème avec de nombreuses solutions trouvées sur stackoverflow mais aucune n'a encore fonctionné, toute suggestion / aide serait appréciée.
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title> Donor Request </title>
</head>
<body>
<form>
<div>
<label> Blood Type </label>
<input type="text" name="" id="bloodType" value="">
<label> Location </label>
<input type="text" name="" id="Location" value="">
</div>
<button type="submit" name="button"> Request </button>
</form>
</body>
<script type="text/javascript">
const { ipcRenderer } = require('electron').remote;
const form = document.querySelector('form')
form.addEventListener('submit', submitForm);
window.onload = function(){
const bloodType = document.getElementById("bloodType").value;
}
function submitForm(e){
e.preventDefault();
console.log("working");
console.log(bloodType, "working");
ipcRenderer.send('Request:bloodType', bloodType);
}
</script>
</html>
3 Réponses :
Déclarez bloodType comme var ou let en dehors de onLoad pour le rendre accessible dans une autre méthode, ou obtenez-le de l'intérieur submitForm .
let bloodType;
window.onload = function(){
bloodType = document.getElementById("bloodType").value;
}
function submitForm(e){
e.preventDefault();
console.log("working");
console.log(bloodType, "working");
ipcRenderer.send('Request:bloodType', bloodType);
}
function submitForm(e){
const bloodType = document.getElementById("bloodType").value;
e.preventDefault();
console.log("working");
console.log(bloodType, "working");
ipcRenderer.send('Request:bloodType', bloodType);
}
Il ne renvoie pas de tableau .
Je change la réponse en état arrayLike
Lorsque vous utilisez const , votre variable sera confinée à la portée de la fonction dans laquelle elle a été déclarée. Cela signifie que vous ne pouvez pas accéder à bloodType en dehors de votre fonction de rappel window.onload .
Au lieu de cela, une solution possible pourrait être de faire de bloodType un variable globale, puis définissez sa valeur dans votre rappel onload comme ceci:
let bloodType;
window.onload = function(){
bloodType = document.getElementById("bloodType").value;
}
De cette façon, vous pouvez accéder à bloodType code > à travers toutes vos fonctions, sans avoir à interroger le DOM une seule fois.
Comme d'autres l'ont mentionné, vous devez définir bloodType en dehors de la fonction window.onload en utilisant let ou dans le submitForm fonction.
<div id="example">some text</div>
La chose intéressante ici est que la variable bloodType que vous utilisez dans votre submitForm ne lèvera pas d'erreur de référence. Parce que bloodType fait référence à l'élément d'entrée réel avec le id = bloodType .
Si vous avez un élément
function submitForm(e) {
let bloodType = document.getElementById("bloodType").value;
e.preventDefault();
console.log("working");
console.log(bloodType, "working");
ipcRenderer.send('Request:bloodType', bloodType);
}
example.innerHTML renvoie du texte sans avoir à créer la variable let example = document.getElementById ("example") manuellement
Donc, si vous deviez faire bloodType.value code> avec votre code existant, cela fonctionnera. Mais, vous devriez utiliser document.getElementById("bloodType").value
Plus d'infos: Les éléments de l'arborescence DOM avec des identifiants deviennent-ils des variables globales?
mais il n'y a aucun code
getElementByIDici.@MadhawaPriyashantha je vois que j'ai accidentellement copié l'ancienne version, j'ai mis à jour la question.