Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter le changement d'une variable ?

7 réponses
Avatar
Pierre Goiffon
Une question simple : tout comme on a un onChange sur un champ input,
nous aurions besoin d'un équivalent... pour une variable.

Je suppose que c'est possible en construisant un objet, mais je ne vois
pas vraiment par quel bout attaquer... si vous aviez des pistes... Merci !

7 réponses

Avatar
Pascal PONCET
Pierre Goiffon a écrit :
Une question simple : tout comme on a un onChange sur un champ input,
nous aurions besoin d'un équivalent... pour une variable.



Bonjour,

Question préalable, je crois : qu'est-ce qui provoque le changement de
valeur de la variable ?

Pascal
Avatar
SAM
Pierre Goiffon a écrit :
Une question simple : tout comme on a un onChange sur un champ input,
nous aurions besoin d'un équivalent... pour une variable.

Je suppose que c'est possible en construisant un objet, mais je ne vois
pas vraiment par quel bout attaquer... si vous aviez des pistes... Merci !



mavariable == 'tzimtzimtointoin'

window.onload = function() { setInterval(
function() {
if(mavariable != 'tzimtzimtointoin') alert('Au s'cours');
}, 50);
};
}


Mébon ... sans le contexte ...


JS :

mavariable = '';

function auBoulot() {
var E = document.forms[1].getElementsByTagName('input');
for(var i=0, n=E.length; i<n; i++)
if(E[i].type == 'text' && E[i].value == mavariable) {
alert('pas bon');
E[i].focus();
return false;
}
if(document.forms[0].repere.value == '') {
alert('fixer un repère');
document.forms[0].repere.focus();
return false;
}
return true;
}

HTML :

<form action="#" onsubmit="return false;">
<p>Définir le repère:
<input name="repere" onchange="mavariable=this.value;">
<input type=submit value="changer"></p>
</form>
<form action="javascript:alert('ok')" onsubmit="return auBoulot()">
<p><input>
<p><input>
<p><input>
<p><input>
<p><input type=submit>
</form>


--
sm
Avatar
Bobe
Pierre Goiffon nous a dit le 04.09.2008 14:56:
Une question simple : tout comme on a un onChange sur un champ input,
nous aurions besoin d'un équivalent... pour une variable.

Je suppose que c'est possible en construisant un objet, mais je ne vois
pas vraiment par quel bout attaquer... si vous aviez des pistes... Merci !



Utiliser un setter ?

Myobject.__defineSetter("myvar", function(val) { ... });
ou (sans doute plus standard)
Myobject.myvar = setter function(val) { ... }

pas sûr à 100% de la syntaxe pour le deuxième.

(Salut au passage; ça faisait un baille que je venais plus sur les ng)

--
Aurélien Maille
Avatar
Bobe
Bobe nous a dit le 07.09.2008 06:21:

Myobject.__defineSetter("myvar", function(val) { ... });




Et zut. __defineSetter__ bien sûr.

--
Aurélien Maille
Avatar
SAM
Bobe a écrit :
Bobe nous a dit le 07.09.2008 06:21:
Myobject.__defineSetter("myvar", function(val) { ... });




Et zut. __defineSetter__ bien sûr.



<http://developer.mozilla.org/fr/R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/defineSetter&gt;
<http://www.asp-php.net/tutorial/scripting/javascript-et-poo.php?page=4&gt;

Mébon ... pas trop d'exemples.

--
sm
Avatar
Pierre Goiffon
SAM wrote:
Bobe a écrit :
Bobe nous a dit le 07.09.2008 06:21:
Myobject.__defineSetter("myvar", function(val) { ... });




Et zut. __defineSetter__ bien sûr.



<http://developer.mozilla.org/fr/R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/defineSetter&gt;

<http://www.asp-php.net/tutorial/scripting/javascript-et-poo.php?page=4&gt;

Mébon ... pas trop d'exemples.



C'est une piste intéressante, merci !
Avatar
SAM
Pierre Goiffon a écrit :
SAM wrote:
Bobe a écrit :
Bobe nous a dit le 07.09.2008 06:21:
Myobject.__defineSetter("myvar", function(val) { ... });




Et zut. __defineSetter__ bien sûr.



<http://developer.mozilla.org/fr/R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/defineSetter&gt;

<http://www.asp-php.net/tutorial/scripting/javascript-et-poo.php?page=4&gt;

Mébon ... pas trop d'exemples.



C'est une piste intéressante, merci !




Si tu arrives à en faire qque chose je serais intéressé de voir.
(j'ai du mal à capter le truc)

--
sm