[JS] Changement de Disable ne fonctionne pas

Changement de Disable ne fonctionne pas [JS] - Javascript/Node.js - Programmation

Marsh Posté le 02-11-2017 à 17:23:55    

Bonjour
 
J'ai un soucis avec une fonction qui ne fonctionne pas.
 
Dans ma page (html/php), j'ai un tableau de données a modifier alimenté par une BDD, ou chaque ligne est une input de type text, et en fin de ligne un bouton pour enregistrer les modifications, et un autre pour supprimer la ligne
 
jusque la rien de sorcier
pour ajouter une petite touche, j'ai voulu mettre en place une fonction pour que le bouton enregistrer soit actif que si un champs dans la ligne a été modifié.
 
pour cela, j'ai ajouté la fonction suivante dans mon head

Code :
  1. <script type="text/javascript">
  2.           function activate(idmod)
  3.           {
  4.               document.getElementById(idmod).disabled = false;
  5.            }
  6.        </script>


 
Et histoire d'avoir des ID unique pour les bouton, j'ai ajouté un compteur dans ma boucle et mes formulaire, ce qui donne ceci pour chaque ligne (c'est en php)

Code :
  1. echo "<tr><form style='display:inline' name='$res->wapp_name' action='./index.php' method='post'>
  2.         <td><input onchange='activate(mod".$id." )' type='text' size='16' name='name' value='$res->wapp_name'></td>
  3.         <td><input id='mod".$id."' type='submit' value='Enregistrer' disabled></td>
  4.         </form></tr>";


 
Quand je regarde le code source de la page, mes id sont bien pris, au final j'ai bien un activate(mod1) et id=mod1 pour ma première ligne par exemple.
 
le soucis, quand je modifie mon champ name (par exemple), le bouton enregistrer ne s'active pas, il reste gris.
J'ai testé sous IE et FF, c'est pareil.
 
je comprend pas trop ce qui cloche.
 
Merci du coup de main.


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 02-11-2017 à 17:23:55   

Reply

Marsh Posté le 02-11-2017 à 17:38:02    

>onchange='activate(mod".$id." )'
='javascript:activate... non?

Reply

Marsh Posté le 02-11-2017 à 17:46:04    

Plutôt :

Code :
  1. onchange='activate(&quot;mod".$id."&quot;)'


ou :

Code :
  1. onchange='activate(&apos;mod".$id."&apos;)'


ou encore :

Code :
  1. onchange='activate(\"mod".$id."\" )'


à :

Code :
  1. onchange='activate(mod".$id." )'


 
Parce que c'est une chaîne que tu passes à ta fonction JS, non une variable ? Tu n'as pas une erreur JS dans ta console ?


Message édité par pluj le 02-11-2017 à 17:49:50
Reply

Marsh Posté le 02-11-2017 à 17:48:16    

yep, c'est que j'etait en train de voir, en modifiant

Code :
  1. onchange='activate(mod".$id." )'


en

Code :
  1. onchange='activate(\"mod".$id."\" )'


 
ca va beaucoup mieux
 
:)


---------------
Serveur HFR - OpenTTD
Reply

Sujets relatifs:

Leave a Replay

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