Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Prise en compte attribut readonly

1 view
Skip to first unread message

Pierre Goiffon

unread,
Feb 5, 2010, 10:53:47 AM2/5/10
to
Bonjour,

Je suis tr�s surpris, je n'arrive pas � faire fonctionner l'attribut
readonly que je suis pourtant quasi certain d'avoir vu fonctionner fut
un temps sur des champs input text.

Ainsi, sur la page suivante sur IE7 comme sur Fx 3.6 je peux modifier le
champ texte et cocher radio et checkbox ! Qu'est-ce que je rate donc de
si �vident ??!?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test readonly</title>
</head>
<body>

<form action="">
<p>
<input type="text" value="ui" name="titi"><br>
<input type="checkbox" readonly name="toto"><br>
<input type="radio" readonly name="tutu">
</p>
</form>

</body>
</html>

Olivier Masson

unread,
Feb 5, 2010, 11:01:41 AM2/5/10
to
Le 05/02/2010 16:53, Pierre Goiffon a �crit :

> <input type="text" value="ui" name="titi"><br>
> <input type="checkbox" readonly name="toto"><br>
> <input type="radio" readonly name="tutu">


Sans avoir test� : en strict as-tu le droit de laiss� un attribut sans
valeur ? (je sais plus si c'est html strict ou xhtml qui l'impose et
j'ai pas le tps de chercher)
Dans tous les cas, �crire readonly="readonly" ne fera pas de mal.

Pierre Goiffon

unread,
Feb 5, 2010, 11:32:19 AM2/5/10
to

J'ai essay� en HTML 4 strict et transitionnal, pas de diff�rence.

Pour la valeur d'attribut, c'est une contrainte XHTML :
http://www.w3.org/TR/xhtml1/diffs.html#h-4.5
Cela dis je viens de d�couvrir une r�gle de compatibilit� que je ne suis
pas s�r de comprendre :
http://www.w3.org/TR/xhtml1/#C_10

Et la ref readonly HTML :
http://www.w3.org/TR/html4/interact/forms.html#adef-readonly

Paul Gaborit

unread,
Feb 5, 2010, 11:51:47 AM2/5/10
to

� (at) Fri, 05 Feb 2010 16:53:47 +0100,
Pierre Goiffon <pgoi...@free.fr.invalid> �crivait (wrote):

> Je suis tr�s surpris, je n'arrive pas � faire fonctionner l'attribut
> readonly que je suis pourtant quasi certain d'avoir vu fonctionner fut
> un temps sur des champs input text.


Petit extrait de
<http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT> :

readonly (readonly) #IMPLIED -- for text and passwd --

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>

Pierre Goiffon

unread,
Feb 5, 2010, 12:09:21 PM2/5/10
to
On 05/02/2010 17:51, Paul Gaborit wrote:
>> Je suis tr�s surpris, je n'arrive pas � faire fonctionner l'attribut
>> readonly que je suis pourtant quasi certain d'avoir vu fonctionner fut
>> un temps sur des champs input text.
>
> Petit extrait de
> <http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT> :
>
> readonly (readonly) #IMPLIED -- for text and passwd --

Ok, et bien vu !
Cela explique le non fonctionnement sur radio et checkbox. Mais dans ma
page exemple, �a ne fonctionne pas non plus sur le text...

Pierre Goiffon

unread,
Feb 5, 2010, 12:15:24 PM2/5/10
to
On 05/02/2010 18:09, Pierre Goiffon wrote:
>> <http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT> :
>>
>> readonly (readonly) #IMPLIED -- for text and passwd --
>
> Cela explique le non fonctionnement sur radio et checkbox. Mais dans ma
> page exemple, �a ne fonctionne pas non plus sur le text...

Hahum !
J'avais oubli� le readonly sur le input text :D

Avec le code suivant pas de soucis pour le texte, par contre �a ne
fonctionne pas sur checkbox et radio.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test readonly</title>
</head>
<body>

<form action="">
<p>
<input type="text" value="ui" name="titi" readonly><br>

Yop

unread,
Feb 5, 2010, 1:06:01 PM2/5/10
to
Essaye DISABLED


SAM

unread,
Feb 5, 2010, 5:05:02 PM2/5/10
to
Le 2/5/10 7:06 PM, Yop a �crit :
> Essaye DISABLED


Ha ! voil� le terme que je cherchais un peu en vain !
M'semblait bien que ce n'�tait pas tout � fait "readonly"
(comme si on pouvait *lire* un bouton ... !? )

Pierre, avec son probl�me, m'avait un peu destabilis� l� ;-)

Des fois o� on peut tourner en rond autour de qque chose trop simple !
--
sm

Pierre Goiffon

unread,
Feb 9, 2010, 9:59:57 AM2/9/10
to
On 05/02/2010 23:05, SAM wrote:
>> Essaye DISABLED
>
> Ha ! voil� le terme que je cherchais un peu en vain !

C'est pour ne pas utiliser disabled que je cherchais autre chose :)

Les input disabled ne sont pas envoy�s en submit, et dans mon cas
c'�tait fort probl�matique (des input � passer en readonly de mani�re
dynamique en JS, car suivant la valeur d'une autre option dans la page
ils doivent pouvoir �tre modifi�s ou pas, et donc le framework c�t�
serveur a du mal s'il ne re�oit que certaines fois les valeurs des
input, suivant qu'ils ont �t� plac�s en disabled ou non)

Olivier Miakinen

unread,
Feb 9, 2010, 10:20:20 AM2/9/10
to
Le 09/02/2010 15:59, Pierre Goiffon a ï¿œcrit :

>
> C'est pour ne pas utiliser disabled que je cherchais autre chose :)
>
> Les input disabled ne sont pas envoyï¿œs en submit, et dans mon cas
> c'ᅵtait fort problᅵmatique (des input ᅵ passer en readonly de maniᅵre
> dynamique en JS, car suivant la valeur d'une autre option dans la page
> ils doivent pouvoir ᅵtre modifiᅵs ou pas, et donc le framework cᅵtᅵ
> serveur a du mal s'il ne reï¿œoit que certaines fois les valeurs des
> input, suivant qu'ils ont ᅵtᅵ placᅵs en disabled ou non)

Il y a toujours une solution, mais de plus en plus usineï¿œgazesque :
quand tu veux passer un input non texte en readonly, ton script JS le
passe en disabled et rajoute un input hidden de mï¿œme nom et de mï¿œme
valeur ; quand tu veux le repasser en read-write, le script retire le
disabled en mï¿œme temps qu'il supprime l'input hidden.

Bon courage !

SAM

unread,
Feb 9, 2010, 12:08:08 PM2/9/10
to
Le 2/9/10 4:20 PM, Olivier Miakinen a ï¿œcrit :

Ben ... pourquoi pas simplement un hidden attachᅵ au bouton
et du bouton on en n'a plus que faire (le php ne veut que le hidden)

<fieldset><legend>Les trucs</legend>
voir/cacher les trucs: <input type="checkbox" onclick="valuate(this)">
<p><label for="truc1">
truc 1: <input type="checkbox" value="1" onclick="ok(this)" id="truc1">
<input type="hidden" name="truc1" value="0"></label>
<label for="truc2">
truc 2: <input type="checkbox" value="2" onclick="ok(this)" id="truc2">
<input type="hidden" name="truc2" value="0"></label>
<label for="truc3">
truc 3: <input type="checkbox" value="3" onclick="ok(this)" id="truc3">
<input type="hidden" name="truc3" value="0"></label></p>
</fieldset>

function ok(quoi) {
var v = quoi.checked, o = quoi.value;
while(quoi.tagName!='LABEL') quoi=quoi.parentNode;
quoi.getElementsByTagName('INPUT')[1].value = v? o : '0';
}
function valuate(quoi) {
var v = quoi.checked;
while(quoi.tagName!='FIELDSET') quoi=quoi.parentNode;
quoi = quoi.getElementsByTagName('INPUT');
for(var i=1, n=quoi.length; n>i; i++)
if(quoi[i].type=='checkbox') quoi[i].disabled= !v;
}

--
sm

Olivier Miakinen

unread,
Feb 9, 2010, 5:20:56 PM2/9/10
to
Le 09/02/2010 18:08, SAM a ï¿œcrit :

>
> Ben ... pourquoi pas simplement un hidden attachᅵ au bouton
> et du bouton on en n'a plus que faire (le php ne veut que le hidden)
>
> [exemple]

Excellente idï¿œe ! Puisque JavaScript est un prï¿œrequis, cette solution me
semble parfaitement convenir.

--
Olivier Miakinen

Pierre Goiffon

unread,
Feb 15, 2010, 10:20:22 AM2/15/10
to
On 09/02/2010 16:20, Olivier Miakinen wrote:
>> C'est pour ne pas utiliser disabled que je cherchais autre chose :)
>
> quand tu veux passer un input non texte en readonly, ton script JS le
> passe en disabled et rajoute un input hidden de m�me nom et de m�me

> valeur ; quand tu veux le repasser en read-write, le script retire le
> disabled en m�me temps qu'il supprime l'input hidden.

C'est bien une solution � base de champ hidden qui a �t� mise en place.
Dommage que �a ne soit pas plus simple :/

0 new messages