Aide - Recherche - Membres - Calendrier
Version complète : Javascript ne semble pas marcher sur le navigateur IE pour mon formulaire de creation de compte
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
os78
bonjour
ca fait des mois que j'ai un fichier create_account.php de formulaire de création de compte avec un peu de javascript.Apparamment quand le client choisit entreprise .Javascript est lancé pour faire afficher un champ pour saisir le nom de société.Sur firefox ca marche nikel mais pas sur tous les navigateurs Internet explorer 7, ou 8 ou plus .
Je ne comprends rien du tout là .
Vous n'avez pas le même problème non?
merci pour votre aide
chti_poupon
Bonjour,
Quelle est ta version (signature ??)?
Quel javascript as tu ajouté, il n'y en a pas dans une 2.2 vierge ?
Que se passe-t-il si tu désactives js dans ton navigateur ?
A te lire !
Chti poupon
os78
en cherchant sur le net , j'ai vu que table-row n'est pas pris en compte par IE .mais je ne sais comment adapter
Citation
function select_change(value){
var company_infos = document.getElementsByName('company_information');
var visibility = "none";
if(value=='company' || value=='administration'){
var visibility = "table-row";
}
for(var i=0;i<company_infos.length;i++){
company_infos[i].style.display = visibility;
}
}
os78
j'ai crée une nouvelle fonction js et ca semble marché .
merci
chti_poupon
Bonjour
Voilà un post intéressant ! smile.gif
Une certaine version d'osc contient, peut-être par une certaine contrib, appellée par catalog/create_account.php, un code js dont tu nous livres une partie relative au champ "entreprise". rolleyes.gif
Nous apprenons que arrow.gif
Citation
table-row n'est pas pris en compte par IE

et que idea.gif
Citation
j'ai crée une nouvelle fonction js et ca semble marché .


ninja.gif Que de l'inédit ! mrgreen.gif

Merci d'avance pour ceux qui auraient aimé savoir twisted.gif

Chti poupon
Gnidhal
waip d'autant que des méthodes pour faire apparaître un contenu dans un tableau il en existe des dizaines.
Il convient de prendre note que IE n'est pas la référence en matière de gestion javascript, et que par exemple getElementsByName doit parfois être remplacé par getElementsByTagName (recommandation w3c)
Mais au delà de ça, je serais plus simplement passé par un display = block/none sur un contenu dans la cellule du tableau en sachant qu'un td vide dans un tableau a une hauteur nulle. Mais pourquoi faire simple quand on peut faire compliqué ?
Ah oui, j'oubliais, avec jQuery chargé en haut de page, on peut gérer cela sans ajout dans le haut de page mais avec une fonction simplifiée en bas sur le domready!
os78
voici le code que j'utilise
1-
Citation
echo tep_draw_pull_down_menu('type', $type_array,'private',' id="type" onChange="select_change(this.value);" ') . '&nbsp;' . (tep_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COMPANY_TEXT . '</span>': '');
if (ACCOUNT_COMPANY == 'true')
echo esp(1).'<div id="company_information">'.'Nom:'.tep_draw_input_field('company','','title="Nom de Votre Sciété" size=37') . '&nbsp;' . (tep_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COMPANY_TEXT . '</span>': '').'</div>';

2-
Citation
<script>
function select_change(value){
var company_infos = document.getElementById('company_information');
var visibility = "none";
if(value=='company' || value=='administration'){
var visibility = "inline";
}
company_infos.style.display = visibility;
}
</script>
Gnidhal
Ha bin c'est mieux smile.gif
mais ce que je disais tien toujours.
Vu que tu n'utilises pas de tableau tu peux exploiter l'option display:block ou display:none plutôt que visibility.
Au final display ne réserve pas la zone d'affichage ce qui fait qu'il n'y a pas d'espace vide si le champ n'est pas affiché. Il suffit après de gérer ou non la présence du champ dans le formulaire dans le traitement.

donc
Code
if(value=='company' || value=='administration'){
var visibility = "inline";
}
company_infos.style.display = visibility;
serait plus simplement :
Code
if(value=='company' || value=='administration'){
  document.getElementById('company_information'.style.display = 'block';
}else{
  document.getElementById('company_information'.style.display = 'none';
}

mais il faudra peut-être déplacer ton séparateur "esp(1)" dans la div ou utiliser une div autour.
os78
merci pour votre aide et grand merci à Gnidhal pour sa suggestion
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.