input.type="something" ne fonctionne pas sous IE Soluce inside

input.type="something" ne fonctionne pas sous IE Soluce inside - HTML/CSS - Programmation

Marsh Posté le 04-11-2006 à 00:09:16    

Salut les loutres
certains d'entre vous ont déjà essaye de faire :

 
Code :
  1. var inp = document.createElement("input" );
  2. inp.type="text";


Le problème c'est que ce batard de IE fuck royalement à ce niveau là :/

 

J'ai fait un fix à l'arrache qui fonctionne bien apparament :

Code :
  1. function setType(node, type) {
  2. try {
  3.  node.type = type;
  4. } catch(e) {
  5.  if (node.outerHTML) {
  6.   node.outerHTML=node.outerHTML.replace(/\btype=\w+\b/,'type="text"');
  7.  }
  8. }
  9. }


reconnaissez la magnifique utilisation bien crade de outerHTML [:kbchris]

 

Il existe une autre méthode pour créer un input avec des attributs sous IE :

Code :
  1. var inp = document.createElement('<input type="text">')


Mais pour modifier le type du input à la volée, il vaut mieux passer par setType

 

Il n' ya pas de question dans ce topic, mais juste une réponse à vos problèmes :o


Message édité par gatsu35 le 07-03-2007 à 12:45:40
Reply

Marsh Posté le 04-11-2006 à 00:09:16   

Reply

Marsh Posté le 04-11-2006 à 02:50:16    

L'est où la question :??: [:petrus75]

Reply

Marsh Posté le 04-11-2006 à 11:58:17    

Pas de question, mais une solution. Et en modifiant le prototype de HTMLInputElement ?

Reply

Marsh Posté le 04-11-2006 à 12:23:12    

le prototypage n'est-il pas pourri sous IE ?
Jvais faire des tests cet aprem et je vous tiens au courant.
FlorentG à la rigueur pourrais-tu m'indiquer une petite piste parce que là je vois pas par où commence :/
 
HTMLInputElement.prototype.setType = function(type) {
 
}  
 
???

Reply

Marsh Posté le 04-11-2006 à 12:24:48    

Je sais pas, j'ai jamais fait [:dawak] Faut que je teste

Reply

Marsh Posté le 04-11-2006 à 12:26:39    

FlorentG a écrit :

Je sais pas, j'ai jamais fait [:dawak] Faut que je teste


On peut vraiment pas compter sur toi hein :o spèce de nul :o

Reply

Marsh Posté le 04-11-2006 à 12:27:49    

2 sec je teste :o

Reply

Marsh Posté le 04-11-2006 à 12:56:32    

Le prototypage sous IE c'est du gros caca
donc pas de prototypage sur les objets :o
 
vive setType() :o
Ptain on doit encore se trimballer des helper functions pendant longtemps :(

Reply

Marsh Posté le 04-11-2006 à 13:16:33    

sinon on peut aussi arrêter de se compliquer la vie et faire un

Code :
  1. var inp = document.createElement("input" );
  2.     inp.setAttribute('type','text');


ça marche partout :o
 
Et le prototype c'est très bien, y compris sur IE :o

Reply

Marsh Posté le 04-11-2006 à 13:18:18    

maintenant tu essaye ça :o  

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. window.onload = function() {
  7.  var inp = document.getElementById("t" );
  8.  inp.type="hidden";
  9. }
  10. </script>
  11. </head>
  12. <body>
  13. <input type="text" id="t" value="tamere" />
  14. </body>
  15. </html>

Reply

Marsh Posté le 04-11-2006 à 13:18:18   

Reply

Marsh Posté le 04-11-2006 à 13:23:02    

ok même si tu t'es planté je vois ce que tu veux dire.
Mais maintenant que j'ai saisis ton problème je vois pas dans quel cas tu peux avoir besoin de changer le type d'un input :??:

Reply

Marsh Posté le 04-11-2006 à 13:23:28    

Le problème du prototype est qu'il faudrait l'appliquer sur HHTMLInputElement, sauf que hum

Reply

Marsh Posté le 04-11-2006 à 13:32:49    

anapajari a écrit :

ok même si tu t'es planté je vois ce que tu veux dire.
Mais maintenant que j'ai saisis ton problème je vois pas dans quel cas tu peux avoir besoin de changer le type d'un input :??:


EN fait ya pas vraiment besoin, mais il s'avère que lorsque l'on fait un appendChild et qu'on change le type de l'élément on se prend une claque dans la gueule.
 
Et Faisant et/ou travaillant sur des sites orientés grand publiques (>Millions de visiteurs) Il est parfois très important de faire le minimum de code avec une grand efficacité. Donc prototypage et tout le tralala j'évite pas mal, tout ça à cause de cette sous merde de IE

Reply

Marsh Posté le 08-09-2008 à 19:01:51    

anapajari a écrit :

ok même si tu t'es planté je vois ce que tu veux dire.
Mais maintenant que j'ai saisis ton problème je vois pas dans quel cas tu peux avoir besoin de changer le type d'un input :??:


 
Je pense que si les gens demandent, ils ont une raison :heink:  
Moi par exemple j'ai un petit formulaire de trois champs qui se glisse dans une page (c'est un listing de personne dans une page, et si la personne est connecté, à coté de sa ligne je rajoute le formulaire), mais il la déforme un petit peu, ce que je fait c'est que les trois champs sont en type='hidden' de base, et j'ai mis un bouton "changer", et quand on clique dessus mon bouton "changer" passe en type='hidden', et les autres en type='text', type='submit' etc...
 
Sur ce, Gatsu35 merci pour ta fonction de porc qui tourne niquel sur IE, j'ai pas l'intention de faire un truc plus propre pour les gens qui vive encore sur ce browser à se vomir dessus, merci encore :D


Message édité par Sat711 le 08-09-2008 à 19:03:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed