Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modifier une TextBox

11 réponses
Avatar
Gloops
Bonjour tout le monde,

Quelqu'un a-t-il une id=E9e de pourquoi ce code fonctionne bien sous IE, =

mais pas sous Firefox ?

Depuis un input type=3D"image" situ=E9 dans une cellule d'un tableau, je =

veux diminuer de 10 la valeur dans un input type=3D"text" situ=E9 dans la=
=20
troisi=E8me cellule de la m=EAme ligne du tableau.

Firefox affiche "debut", et puis c'est tout.

Je n'ai pas vu de r=E9serve quant =E0 Firefox dans la doc de parentNode n=
i=20
celle de childNodes.

onclick=3D"javascript:alert('debut');var=20
txb=3Dthis.parentNode.parentNode.childNodes[2].childNodes[1];alert(txb.id=
);txb.value=3Dtxb.value=20
- 10;"

A toutes fins utiles voici le code de la cellule cible :

<td id=3D"td3">

<div class=3D"ajax__slider_h_rail" tabindex=3D"-1"=20
id=3D"ctl00_ContentPlaceHolder1_AffichePlat1_SliderExtender1_railElement"=
>
<div class=3D"ajax__slider_h_handle" style=3D"overflow: hidden; position=
:=20
absolute; left: 140px;">
<img=20
src=3D"WebResource.axd?d=3DdDANfV61VaIqaNbHeMm4KsVQem1mMTMElT9vyWt-2hJIB7=
wEdQ2PdH3JSuZPv03VwbaEZn0Xtl9h2CSXwzK5xpkELXCprZTAAvBRWOwcNlZm6lde1gndK87=
g_sUXh56YUY0yUkmDNsYMSO1M0oIkYghX4PgD3Op-mkLoztN8aO9EORm20&amp;t=3D633398=
816400000000"=20
id=3D"ctl00_ContentPlaceHolder1_AffichePlat1_SliderExtender1_handleImage"=
> =20

</div>
</div>
<input style=3D"display: none;"=20
name=3D"ctl00$ContentPlaceHolder1$AffichePlat1$txbCuissonLineaire"=20
value=3D"100"=20
onchange=3D"javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolde=
r1$AffichePlat1$txbCuissonLineaire\',\'\')',=20
0)" onkeypress=3D"if (WebForm_TextBoxKeyHandler(event) =3D=3D false) retu=
rn=20
false;" id=3D"ctl00_ContentPlaceHolder1_AffichePlat1_txbCuissonLineaire" =

type=3D"text">

</td>

1 réponse

1 2
Avatar
Gloops
SAM a écrit le 30/09/2014 02:30 :
Firefox affiche "debut", et puis c'est tout.



c'est quand même curiousss qu'un nombre s'écrive 'début' !!



Oui, enfin là tu es un peu taquin puisque le code est dans les lignes
suivantes. ;)


Je n'ai pas vu de réserve quant à Firefox dans la doc de parentNod e ni
celle de childNodes.



qu'est-ce qu'on a à faire de ces complications-DOM-nodes alors qu'on a à
dispo le JS simplissime propre aux formulaires ?



avec getElementsByTagName ?

(avec son avantage quant à la vitesse, à ce que j'ai cru comprendre )

onclick="javascript:alert('debut');var
txb=this.parentNode.parentNode.childNodes[2].childNodes[1];alert(txb .id);txb.value=txb.value

- 10;"

A toutes fins utiles voici le code de la cellule cible :



Ha? Paske tout ce verbiage ne représente qu'un petit td ?



Eh oui.
ça serait bien currentRow[2], pas vrai ?



en très laid JavaScript de nos grand' mères :

<img src="1.jpg" alt="bouton"
onclick="ctl00$ContentPlaceHolder1$AffichePlat1$txbCuissonLineaire.va lue
= 'blabla';" />



Ah oui mais sauf que j'ai anticipé qu'il y allait y en avoir plusieurs
sur la page, d'où la nécessité de partir de l'appelant.



L'image est entre les 2 balises "form" du formulaire.

Quelle était la question ?
Car enfin ... on aimerait connaitre le contenu du texte à passer à
ctl00$ContentPlaceHolder1$AffichePlat1$txbCuissonLineaire
histoire de voir à voir

Ha? c'est une simple opération ?
Mézalors il faut bien se souvenir que la valeur d'un input/text est d u
"texte" et non pas un "nombre" même si elle est '23'



d'où le *1 pour la soustraction

Dans d'autres langages il faut explicitement convertir.


En délayé (plus propre ?) :
var c =
this.form.elements['ctl00$ContentPlaceHolder1$AffichePlat1$txbCuissonLi neaire'];



Si il n'y en avait eu qu'un, j'aurais fait comme ça.
Mais avec plusieurs, il faut partir de l'appelant.

Ou alors, créer un tableau qui fait correspondre à deux boutons le te xte
à faire varier ? C'est aussi une forme de complication, non ?


--
1 2