Avatar billede neoman Novice
02. maj 2007 - 15:32 Der er 4 kommentarer og
2 løsninger

Få data tilbage fra JS i en hidden

Jeg har noget script kørende, som udfylder nogle <input hidden>felter på min side. Scriptet skal bruges for flere forskellige sider.

For øjeblikket har jeg en HtmlControl
<input id="StartRange" type="hidden" value="0" runat="server" />

som jeg kan tilgå både på server og på klienten. Jeg har været nødt til at fastkode dens ID på klienten i min JS:-( Der findes en asp parameter minKontrol.ClientID som man kan indsætte i JS, således at man slipper for at finde ud af hvad kontrollen hedder på klientsiden. Desværre synes en almindelig <input> IKKE at have denne parameter.

En almindelig asp.TextBox dukker slet ikke op på klienten når den sættes til Visible=False.

Forsøgte mig også med en <asp:HiddenField>, som HAr en HiddenField.ClientID. Det havde nogle underlige effekter  - der dukkede nogle ting op i den på klienten, og jeg ved ikke hvordan jeg beholder kontrollen for mig selv, uden at ASP.NET laver alt muligt om på den.

Så med andre ord : hvordan kan jeg hente usynligt input fra klienten, UDEN at fastbinde mig på IDét som jo bliver lavet om under udviklingen, da siden tilpasses mens tiden går.
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 19:28 #1
Her er et eksempel som jeg lavede for en anden:

<asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
<img src="images\indicator.gif" onclick="AddText('adgsg',<% = "'"+txtTest.ClientID+"'" %>)" />
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 19:29 #2
function AddText(text, id)
{
var value =document.getElementById(id).value
document.getElementById(id).value=value+ ' ' + text;

}
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 19:30 #3
Nu kender jeg ikke dit præcise javascript.
Men du burde kunne gøre noget i denne stil i dit java script:

document.getElementById(<% = "'"+txtTest.ClientID+"'" %>).value
Avatar billede neoman Novice
02. maj 2007 - 20:00 #4
Tak for forslaget, men mit problem ligger et helt andet sted.  Jeg ønsker at have et felt (faktisk, adskillige) ude på klienten som jeg kan aflæse på serveren og som ikke er synligt.

Jeg kan ikke bruge en asp:TextBox (som HAR property ClientID) for hvis jeg laver den Visible=False så renderes den slet ikke på klienten (kan jo være jeg kunne lave dens farver om så den ser usynlig ud, men det er lidt meget overhead hvis man skal lave skins senere osv.) og jeg ønsker noget som er skjult.

en <input hidden> som jeg bruger nu, og fint kan fylde/læse, men med et fastkodetID, fordi den ikke har property .ClientID  - medmindre den er gemt som "attributes" eller et andet mystisk sted.
Avatar billede neoman Novice
02. maj 2007 - 20:09 #5
TAda -  en <input type=hidden> viser sig alligevel at have en .ClientID .
Det er vist min Intellisens(intelligens?)  som var gået i strejke :-) - jeg havde noget kompileringsvrøvl før, hvor den brokkede sig over alskens ting men kørte koden alligevel.  Kunne hellere ikke få det til at hænge sammen, men nu er verden tilbage til sin normale gang!

Læg venligst et halvt svar som tak for indsatsen.
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 23:13 #6
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester