developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#405 closed bug (invalid)

Bug IE : jForm JavaScript

Reported by: raymond876 Owned by:
Priority: normal Milestone: Jelix 1.0.1
Component: jelix:forms Version: 1.0RC2
Severity: minor Keywords:
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description

Sous IE après l'affichage d'une alert pour indiquer qu'un champs est obligatoire ou erroné, le text du bouton submit disparait.

Change History (7)

comment:1 Changed 13 years ago by laurentj

  • Milestone set to Jelix 1.0
  • Severity changed from normal to minor

comment:2 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.0 to Jelix 1.0.1

je n'arrive pas à reproduire le bug avec IE6. Merci d'indiquer le contenu du fichier jforms, la partie du template qui affiche le formulaire, ainsi que la version d'internet explorer. Une chose qui serait mieux : c'est de mettre en ligne si possible une page test qui montrerai le bug.

comment:3 Changed 12 years ago by raymond876

Alors voici le form.xml :

 <?xml version="1.0" encoding="utf-8"?>
  <form xmlns="http://jelix.org/ns/forms/1.0">
    <input ref="email" type="email"  required="true">
     <label>News-letter</label>
     <help>Indiquez une adresse email valide pour recevoir des informations sur   nos offres.</help>
     <alert type="required">Vous devez saisir une adresse e-mail.</alert> 
     <alert type="invalid">Le format de l'adresse n'est pas correct.</alert>
    </input>
    <submit ref="submit">
     <label>S'inscrire</label>
   </submit>
 </form>

Il est utilisé dans une zone :

 protected function _prepareTpl(){
    $form = jForms::create("site~newsletter");
    $form->setData("email", "Entrez votre e-mail");
    $this->_tpl->assign('nl', $form);
    $this->_tpl->assign('menu','site~sommaire');
 }

Et voici le template :

 {form $nl, 'site~default:newsletter_inscription'}
    <fieldset>
       <legend><b>News Letter</b></legend>
          {formcontrols}
             <p>{ctrl_control}</p>
          {/formcontrols}
       <div align="center"> {formsubmit} </div>
    </fieldset>
 {/form}

Erreur sur IE 6 et 7.

Et voici un exemple : http://test.freephp5.net

comment:4 Changed 12 years ago by raymond876

Bon alors, j'ai trouvé d'où ca viend : c'est "'" dans le nom du submit dans le form.xml.

Voir les 3 exemples :

  • Exemple 1 : avec "S inscrire" sans le "'" -> ca marche.
  • Exemple 2 : avec "S'inscrire" avec le "'" -> ca marche pas.
  • Exemple 3 : avec "S
    'inscrire" -> ca affiche un back-slash, il disparait aprés le clique et tous disparait au dexième clique.

comment:5 Changed 12 years ago by laurentj

Gloups ! C'est quoi ce binzzz ? :-)

Tu peux essayer de mettre ça dans une page statique html toute bete (en dehors de jelix donc) ?

<form action="/site/www/index.php" method="post" id="jform3" onsubmit="return false">
<fieldset>
    <legend><b>News Letter 3</b></legend>
    <p><input type="text" name="email" id="jform3_email" value="Entrez votre e-mail"/></p>
    <div align="center"> <button type="submit" name="submit" id="jform3_submit">S\'inscrire</button> </div>
</fieldset>
</form>

Et de voir ce que ça fait (en testant pareil sur le libellé du bouton).

comment:6 Changed 12 years ago by laurentj

  • Resolution set to invalid
  • Status changed from new to closed

Après de nombreux tests, il se trouve que c'est un bug du script js IE7, donc pas de Jelix. Ce script IE7, sur un simple formulaire (dans une page non jelix) utilisant un bouton submit avec un "'", fait disparaitre le libellé.

Ticket invalide donc.

comment:7 Changed 12 years ago by laurentj

Pour info, voici la page test qui a permis de conclure à un problème du script IE7 :

<html>
<head>
<title>test</title>
<!--[if IE]><script type="text/javascript" src="IE7_0_9/ie7-standard-p.js" ></script><![endif]-->
</head>
<body>
<form action="testbutton.html" method="post" id="jform1" onsubmit="return false">
<fieldset><legend><b>News Letter 1</b></legend>
    <p><input type="text" name="email" id="jform1_email" value="Entrez votre e-mail"/></p>
    <div align="center"> <button type="submit" name="submit" id="jform1_submit">S'inscrire</button> </div>
</fieldset>
</form>
<form action="testbutton.html" method="post" id="jform2" onsubmit="return false">
<fieldset><legend><b>News Letter 2</b></legend>
    <p><input type="text" name="email" id="jform2_email" value="Entrez votre e-mail"/></p>
    <div align="center"> <button type="submit" name="submit" id="jform2_submit">S\'inscrire</button> </div>
</fieldset>
</form>
<form action="testbutton.html" method="post" id="jform3" onsubmit="return false">
<fieldset><legend><b>News Letter 3</b></legend>
    <p><input type="text" name="email" id="jform3_email" value="Entrez votre e-mail"/></p>
    <div align="center"> <button type="submit" name="submit" id="jform3_submit">S\\'inscrire</button> </div>
</fieldset>
</form>
</body>
</html>
Note: See TracTickets for help on using tickets.