J'ai trouvé un tas d'autres questions sur ce sujet, mais pour une raison quelconque, elles n'ont pas résolu mon "problème".Variantes de variables JavaScript
J'ai ce petit script que j'ai fait d'un pur intérêt - et ça marche très bien, mais quelque chose me dérange. Le script efface un champ de texte onFocus et tape "Write here" si rien n'est entré sur Blu. Le script est la suivante:
<html>
<head>
<title>JavaScript</title>
<!--Scripts-->
<script type="text/javascript">
<!--
function noValue() {
var _value = document.getElementById('input').value;
if (_value == "Write here") {
document.getElementById('input').value='';
}
}
function changeValue() {
var _value = document.getElementById('input').value;
if (_value == "") {
document.getElementById('input').value='Write here';
}
}
function dontLeave() {
var c_box = confirm("Do you want to leave?");
if (c_box == true) {
die;
}
else {
history.back;
}
}
//-->
</script>
</head>
<body onUnload="dontLeave()">
<form>
<input id="input" type="text" value="Write here" onFocus="noValue()" onBlur="changeValue()">
</form>
</body>
</html>
Comme vous pouvez le voir la variable _value est utilisé deux fois - dans "NoValue()" et "ChangeValue()". C'est ce que je veux changer.
Je pensais que vous pouvez accéder à une variable globale à l'intérieur d'une fonction en ne déclarant pas à l'intérieur de la fonction fx:
var i = 1;
function foo(){
i++;
return;
}
et la sortie serait 2 si vous appelez la fonction. Mais quand je déclare et initialise la variable en dehors de la fonction, la variable ne fonctionne pas de l'intérieur des fonctions - comment se fait-il? Ai-je mal compris quelque chose ici? :)
J'ai aussi une autre question:
Comme vous pouvez le voir j'ai ajouté une boîte de confirmation lorsque vous quittez la page (je sais que c'est ennuyeux, je ne veux pas l'utiliser, cela est juste une expérience), mais Je ne sais pas comment ne pas quitter la page si le client appuie sur "Annuler". Comment je fais ça? :)
EDIT La première partie de mon problème est maintenant résolu - merci!
Mais theres encore la dernière partie sur le confirm-box ennuyeux; Est-ce que l'un d'entre vous sait comment empêcher le client de partir, pour ainsi dire?
Faites attention à ce que vous faites avec ces fonctions, l'une est de le mettre à "Écrire ici" quand il est vide, et l'autre le change en blanc quand il dit "Ecrire ici". Il pourrait être passer entre les deux beaucoup, ce qui rend difficile de taper quoi que ce soit! –
Tant que je les appelle respectivement onFocus et onBlur qui sont opposés, ne devrait-il pas fonctionner correctement? :) Cela se fait localement, mais si les événements sont mélangés cela peut causer beaucoup de problèmes, vous avez raison :) – Latze