par
guilt92 » 08 juil. 2008, 15:45
Pour changer de style il ne faut effectivement pas effacer l'id sinon ton code ne marchera pas.
Par contre tu peux envisager une solution de ce type :
Dans ton css du déclares une classe "active":
Et dans ton code tu utilises l'attribut className pour dire que quand on a le focus la classe est "active" sinon la classe est "normale".
Code : Tout sélectionner
document.getElementById('pretRelaisAdd02').innerHTML = '<input type="text" name="pretRelaisValeurBien" id="pretRelaisValeurBien" onfocus="this.className=\'active\';" onblur="this.className=\'normal\';" onKeyUp="calculMontantPretRelais()" />';
Par contre je suis pas sur que le .innerHTML marche sur des éléments de type <td>, tu devrais peut etre déclarer dans tes colonnes une div à la place...
Code : Tout sélectionner
<tr>
<td><div id="pretRelaisAdd01"></div></td>
<td><div id="pretRelaisAdd02"></div></td>
</tr>
Enfin si ca marche comme ca... Mais en tous cas il ne faut pas toucher à l'id
Au passage, pour ton problème de bordure il existe un attribut focus dans les css qui fait ca "tout seul" :
mais ca marche pas avec IE... (
http://www.w3schools.com/CSS/pr_pseudo_focus.asp)
Pour changer de style il ne faut effectivement pas effacer l'id sinon ton code ne marchera pas.
Par contre tu peux envisager une solution de ce type :
Dans ton css du déclares une classe "active":
[code].active
{
border:2px red solid;
}[/code]
Et dans ton code tu utilises l'attribut className pour dire que quand on a le focus la classe est "active" sinon la classe est "normale".
[code]document.getElementById('pretRelaisAdd02').innerHTML = '<input type="text" name="pretRelaisValeurBien" id="pretRelaisValeurBien" onfocus="this.className=\'active\';" onblur="this.className=\'normal\';" onKeyUp="calculMontantPretRelais()" />'; [/code]
Par contre je suis pas sur que le .innerHTML marche sur des éléments de type <td>, tu devrais peut etre déclarer dans tes colonnes une div à la place...
[code] <tr>
<td><div id="pretRelaisAdd01"></div></td>
<td><div id="pretRelaisAdd02"></div></td>
</tr>[/code]
Enfin si ca marche comme ca... Mais en tous cas il ne faut pas toucher à l'id :)
Au passage, pour ton problème de bordure il existe un attribut focus dans les css qui fait ca "tout seul" :
[code]input:focus
{
border:2px red solid;
}[/code]
mais ca marche pas avec IE... (http://www.w3schools.com/CSS/pr_pseudo_focus.asp)