PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > Désactiver une page Html
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Désactiver une page Html

Réponse
 
LinkBack Outils de la discussion
Vieux 17/08/2007, 10h29   #1 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Désactiver une page Html

Salut.

J'ai des pages Web qui effectuent des traitements asynchrones lors de la
validation de leur formulaires.

Une fois le formulaire validé, j'affiche une DIV en haut à droite du
navigateur pour indiquer l'état du traitement. Cependant, la page peut être
revalidée ou les champs modifiés.

Je désactive donc les contrôles du formulaire via disabled. Cependant, je
suis *fatigué* de devoir coder tout ça pour chaque page.

Est-il possible d'écrire une fonction générique désactivant tous les INPUT
(textbox, textarea, radiobutton, checkbox, etc) ? Genre, elle parcourt tous
les contrôles de la page et les désactive...

Autre question : pensez-vous qu'il soit judicieux de désactiver aussi les
liens ?

En vous remerciant.

--
Delf


  Réponse avec citation
Vieux 17/08/2007, 17h33   #2 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Delf a couché sur son écran :

> Est-il possible d'écrire une fonction générique désactivant tous les INPUT
> (textbox, textarea, radiobutton, checkbox, etc) ? Genre, elle parcourt tous
> les contrôles de la page et les désactive...


Problème, si j'ai déjà des contrôles désactivés, je les perds lors de
la réactivation...

Autre question : comment mettre un voile transparent sur l'ensemble de
la page ?

Merci.

--
Delf


  Réponse avec citation
Vieux 17/08/2007, 17h45   #3 (permalink)
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Delf a écrit :

> Problème, si j'ai déjà des contrôles désactivés, je les perds lors de la
> réactivation...


Ben faut gérer ça.

> Autre question : comment mettre un voile transparent sur l'ensemble de
> la page ?


Un div en absolute qui fait 100 % de la page. Mais ça, c'est plutôt à
voir sur <news:fr.comp.infosystemes.www.auteurs>

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 17/08/2007, 20h02   #4 (permalink)
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Delf a écrit :
> J'ai des pages Web qui effectuent des traitements asynchrones lors de la
> validation de leur formulaires.
>
> Une fois le formulaire validé, j'affiche une DIV en haut à droite du
> navigateur pour indiquer l'état du traitement. Cependant, la page peut être
> revalidée ou les champs modifiés.
>
> Je désactive donc les contrôles du formulaire via disabled. Cependant, je
> suis *fatigué* de devoir coder tout ça pour chaque page.
>
> Est-il possible d'écrire une fonction générique désactivant tous les INPUT
> (textbox, textarea, radiobutton, checkbox, etc) ? Genre, elle parcourt tous
> les contrôles de la page et les désactive...


function desactive(frm)
{
var i, E;
for ( i = frm.elements.length; i--; )
{
E = frm.elements[i];
// si l'élément a la classe "keepActive"
// alors ne rien faire
if ( /\bkeepActive\b/.test(E.className) ) { continue; }
E.oldDisabled = E.disabled || null;
E.disabled = true;
}
}

function active(frm)
{
var i, E;
for ( i = frm.elements.length; i--; )
{
E = frm.elements[i];
if ( /\bkeepActive\b/.test(E.className) ) { continue; }
E.disabled = E.oldDisabled;
}
}

<form>
<input type="button" onclick="desactive(this.form)" class="keepActive"
value="Deactivate">
<input type="button" onclick="active(this.form)" class="keepActive"
value="Activate">
<br>
<input type="text">
<input type="text" disabled="disabled">
<br>
<textarea></textarea>
<textarea disabled="disabled"></textarea>
<br>
<input type="checkbox" name="y" value="1">
<input type="checkbox" name="y" value="2" disabled="disabled">
<br>
<input type="radio" name="x" value="1">
<input type="radio" name="x" value="2" disabled="disabled">
<br>
<select><option>0</option></select>
<select disabled="disabled"><option>1</option></select>
</form>

> Autre question : pensez-vous qu'il soit judicieux de désactiver aussi les
> liens ?


Dans ce cas autant mettre un gros div qui intercepte les clicks par
dessus tout le monde plutot que de s'embêter avec chaque élément. Parce
que après les liens, ca va être les éléments avec un event mouseover,
click ou autre qu'il va falloir tracker. Trop fatiguant imo.

function divAntiClick()
{
var
div = document.createElement('div'),
dS = div.style,
dB = document.body;
// interdit les clicks
div.onclick = function() { return false; };
dS.opacity = 0.25;
// opacité pour IE
/*@cc_on dS.filter = 'alpha(opacity=25)'; @*/
dS.backgroundColor = 'black';
dS.position = 'absolute';
dS.top = '0px';
dS.left = '0px';
dS.width = '100%';
dS.zIndex = 1e6;
// enregistre l'état d'overflow avant modif
dB.oldOverflow = dB.style.overflow;
// supprime l'overflow pour empêcher le user
// de servir des scrollbars. Ne pas oublier
// lors de la réactivation de replacer l'overflow
// à sa valeur initiale stockée dans oldOverflow
dB.style.overflow = 'hidden';
// détermine la hauteur du div, cf fonction suivante
dS.height = getViewportHeight() + 'px';
// ajoute enfin le div
dB.appendChild(div);
}

/**
* Returns the current height of the viewport.
* @return {Int} The height of the viewable area
* of the page (excludes scrollbars).
*/
function getViewportHeight()
{
var
IE = /*@cc_on !@*/false,
height = -1;

// IE, Gecko
if ( ( document.compatMode || IE ) && !window.opera )
{
// Standards mode
if ( document.compatMode === 'CSS1Compat' )
{
height = document.documentElement.clientHeight;
}
// Quirks
else { height = document.body.clientHeight; }
}
// Safari, Opera
else { height = self.innerHeight; }

return height;
}

--
laurent
  Réponse avec citation
Vieux 17/08/2007, 20h06   #5 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Laurent vilday a utilisé son clavier pour écrire :

> Dans ce cas autant mettre un gros div qui intercepte les clicks par dessus
> tout le monde plutot que de s'embêter avec chaque élément. Parce que après
> les liens, ca va être les éléments avec un event mouseover, click ou autre
> qu'il va falloir tracker. Trop fatiguant imo.


Merci de ton aide, je vais voir ce que donne ces functions.

--
Delf


  Réponse avec citation
Vieux 17/08/2007, 21h08   #6 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Laurent vilday a écrit :

> dB.style.overflow = 'hidden';


J'ai écris : document.body.style.overflow = 'hidden';

Ca fonctionne sous Firefox mais pas sous IE7 :|
Une idée ? Pourtant ça devrait, je trouve rien sur le Net...

Merci.

--
Delf


  Réponse avec citation
Vieux 17/08/2007, 21h13   #7 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Il se trouve que Delf a formulé :

> Ca fonctionne sous Firefox mais pas sous IE7 :|
> Une idée ? Pourtant ça devrait, je trouve rien sur le Net...


Si je retire la balise DOCTYPE, c'est bon...

--
Delf


  Réponse avec citation
Vieux 17/08/2007, 21h19   #8 (permalink)
Delf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

Delf avait énoncé :
> Il se trouve que Delf a formulé :
>
>> Ca fonctionne sous Firefox mais pas sous IE7 :|
>> Une idée ? Pourtant ça devrait, je trouve rien sur le Net...

>
> Si je retire la balise DOCTYPE, c'est bon...


j'ai rajouté ceci :

<style ...>
html
{
overflow:hidden;
}
</style>

et apparemment, ça fonctionne. Je ne risque pas d'avoir de soucis avec
d'autres browsers ?

Merci.

--
Delf


  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 00h53.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12572 seconds with 16 queries