IE8 : les onchange et tests checked ont des comportements bizarres
#2676
Closed
opened 11 years ago by miros
·
14 comments
No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
4.2
boutons-danger
coquille_doc
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/hasard_fixe
dev/instituer_ergo
dev/issue_5447_exporter_csv
dev_infos_image
fix/valider_url_distante
fix_issue_5454
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4836
issue_4946
issue_5258
issue_5344
issue_5427_bis
master
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.17
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.0.9
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
v4.1.6
v4.1.7
v4.2.0-alpha
v4.2.0-alpha2
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Sur IE8, les "onchange" et test de checked semblent buggués sur les boutons radio et checkbox... D'autres reproduisent ces problèmes ?
De mon coté sur scolaspip, j'ai remplacé les onchange par des onclick (meme si c'est moins propre) : http://zone.spip.org/trac/spip-zone/changeset/60670
Voici éventuellement des patchs pour SPIP et 4 plugins-dist pour les cas que j'ai pu identifier.
un patch manquant pour les sites.
Peux tu être plus precis dans la description du probleme : indiquer un formulaire precis sur lequel on peut constater le soucis, et ce qui ne marche pas exactement. Les patchs que tu donnent ne sont pas satisfaisants par ailleurs (onclick pas equivalent a onchange, et il faut oconserver les tests sur la propriete checked)
Pour les patchs : c'est pour ça que j'ai précisé : « même si c'est moins propre ».
ils fonctionnent néanmoins il me semble mais je ne me rappelle plus si j'ai tout testé à fond.
Là, j'ai pas d'ie sous la main...
Si je me souviens bien : le comportement est étrange suivant que la case ou le bouton ait le focus ou pas.
Le problème est décrit ici : http://krijnhoetmer.nl/stuff/javascript/checkbox-onchange/
Dans notre cas, voici les pages :
?exec=configurer_mediabox : cliquer sur « Activer la mediabox dans le site public » (sur le label ou sa case à cocher)
?exec=configurer_contenu :
idem pour :
« Gérer un annuaire de sites Web » ou « Désactiver l'annuaire de sites Web »
« Utiliser les mots-clés » ou « Ne pas utiliser les mots-clés »
?exec=sauvegarder
« Sauvegarder toutes les tables »
et « Restaurer toutes les tables »
?exec=configurer_interactions
Ne pas envoyer d'annonces éditoriales ou Envoyer les annonces à l'adresse
Ne pas envoyer la liste des nouveautés ou Envoyer la liste des nouveautés
?exec=article&id_article=N (avec option date rédaction antérieure activée)
Ne pas afficher de date de rédaction antérieure
?exec=configurer_avancees
Ne pas générer de miniatures des images. ou Générer automatiquement les miniatures des images.
Je reprécise que c'était avec internet explorer 8.
Je n'ai pas pu tester avec d'autres versions d'IE.
meme si on remplace les onchange par des onclick, il faut bien tester l'etat de checked pour etre synchro. Qui plus est, il faudrait dans ce cas aussi agir sur le onkeydown pour le cas de modification au clavier. Cela est lourd au final, et je ne suis pas sur que ça en vaille le coup.
Je testerai sous IE asap
Version cible mise à 3.1
Salut, je viens de fermer un ticket doublon que j'ai ajouté en demande liée. Dans ce ticket je proposais aussi de passer par onclick, mais je viens de lire les arguments de Cedric contre cette solution et je les comprends.
En cherchant un peu, je suis tombé là dessus :
http://www.tudury.fr/?p=43
J'ai testé et cela fonctionne bien sous IE et FF, au clavier et à la souris. Donc un simple ajout de onclick="$(this).blur();" sur ces input et hop plus de problème :)
En attendant mieux pour la 3.1 ça règlerait le pb dans la 3.0. Pour la 3.1 il serait pas mal qu'on se fasse une tite fonction pour gérer ces cas. Quelque chose dans le style :
cachecache(inputquimontre,inputquicache,lacible);
Peut être pas si loin que ça. Chez jQuery ils disaient «jQuery 2.0 (early 2013, not long after 1.9)». On était à la béta 2 le 1er mars dernier.
Donc, ça risque d'être dans la 3.1 à ce train là :)
[oups] Ce message était destiné à #2965[/oups]
marcimat - a écrit :
`b_b : gogogo
Appliqué par commit r21163.
Statut changé à Fermé
Le commit pour les plugins-dist : http://zone.spip.org/trac/spip-zone/changeset/80243
Je laisse le ticket en cours car ça serait pas mal de faire une fonction réutilisable comme je le suggérais dans un commentaire précédent.
Statut changé à En cours
Statut changé à Fermé