Avatar billede christian_bp Nybegynder
30. maj 2007 - 15:05 Der er 8 kommentarer og
1 løsning

Tilføj objekt til tekststreng

Hej...

Jeg har et spørgsmål omkring hvordan man får værdien fra et tekstfelt over "bagpå" en tekststreng, når man trykker på en knap. Indtil nu returner den [object] istedet for det ord jeg har tastet ind i strengen. Er der nogen der har nogle ideer?

Kodeudsnit:

....
<form method="get" name="penge" target="_blank" id="penge" style="margin: 0px;">

<table border="0" cellpadding="5" cellspacing="0" width="235">
          <tbody>
            <tr>
              <td>
              <table border="0" cellpadding="0"
cellspacing="0" width="220">
                <tbody>
                  <tr>
                    <td>

<input name="penge"  value="S&oslash;g p&aring; dom&aelig;ne.dk" onclick="this.value=''" size="7"  style="width: 140px; font-family: verdana,sans-serif; font-size: 11px;"  type="text" /></td>
                   
<td><input name="button" class="bp"
onclick="document.location.href='http://www.test.dk/cm/1.883?general-search=true&search-field='+document.getElementById('penge')" value=" S&oslash;g " type="button" />
</td>
</tr>
</tbody>
Avatar billede w13 Novice
30. maj 2007 - 15:08 #1
Det er fordi du mangler .value efter getElementById('penge').
Du kan hente info om en hel bunke ting fra elementet med id'et "penge", så du skal lige fortælle den, hvad du vil bruge - i dette tilfælde value. Det kunne ligeså godt være .name, .className, .type, .width, osv..

Så:
<input name="button" class="bp"
onclick="document.location.href='http://www.test.dk/cm/1.883?general-search=true&search-field='+document.getElementById('penge').value" value=" S&oslash;g " type="button" />
:)
Avatar billede olebole Juniormester
30. maj 2007 - 15:19 #2
<ole>

w13 >> Det er faktisk en fejl, man stadig kan det. Når man kalder en node med getElementById, burde man få returneret en DOM-node - og sådan én har ikke alle disse properties. Det havde til gengæld det gamle HTML-elements JS-objekt, men det er snart 10 år siden, vi fik 'den nye' DOM, hvor man finder attributters værdier med getAttribute  ;o)

- at så man ikke kan hente dynamiske værdier ud med getAttribute, er så en anden ting. Skal man være helt nøjeregnende, findes der således ikke en valid måde at hente et input-felts value på - og det må betegnes som en fejl i standarden ... eller i bedste fald en uhensigtsmæssighed.

Dog bliver tingene bedre og mere stringente, når XHTML engang bliver anvendelig ... med version 2.0 og XForms. Men det kræver lige, at standarden bliver færdig .... _og_ at den understøttes af browserne. Det kan tage en del år endnu  :oP

/mvh
</bole>
Avatar billede w13 Novice
30. maj 2007 - 15:24 #3
Ah, ja, tænkte ikke på getAttribute - har også kun selv brugt den få gange, hvilket så er fejl.

Men du siger, at hvis man bruger den, så får man kun den værdi, som attributten indeholdt, da siden blev loadet, og ikke det ændrede indhold i "penge"? Det anede jeg ikke.
Avatar billede christian_bp Nybegynder
30. maj 2007 - 15:46 #4
Nu har jeg sat .value på, men efter så kommer der undefined frem istedet for [object]? Har jeg glemt noget et sted?
Avatar billede w13 Novice
30. maj 2007 - 16:09 #5
For det første, så har du kaldt både din form og dit input-felt for "penge", hvilket er "ulovligt". For det andet, så søger du efter inputfeltet med metoden getElementById('penge'), men da du kun har sat en name attribut på feltet og ikke en id-attribut, kan dette ikke findes.

Dette skulle virke:
--------------------------------
<form style="margin: 0px;">

<table border="0" cellpadding="5" cellspacing="0" width="235">
          <tbody>
            <tr>
              <td>
              <table border="0" cellpadding="0"
cellspacing="0" width="220">
                <tbody>
                  <tr>
                    <td>

<input id="penge" value="S&oslash;g p&aring; dom&aelig;ne.dk" onclick="this.value=''" size="7" style="width: 140px; font-family: verdana,sans-serif; font-size: 11px;" type="text" /></td>
                   
<td><input class="bp"
onclick="document.location.href='http://www.test.dk/cm/1.883?general-search=true&search-field='+document.getElementById('penge').value" value=" S&oslash;g " type="button" />
</td>
</tr>
</tbody>
Avatar billede christian_bp Nybegynder
30. maj 2007 - 16:11 #6
Sorry... Jeg giver lige en nærmere forklaring...

Jeg har et textfelt der skal bruges som søge felt på en side. Søgningen skal foretages ved dette link:

http://www.domæne.dk/cm/1.883?general-search=true&search-field=

Det ord der kommer efter field er det ord der bliver søgt på.

Jeg skal tage ordet fra tekstfeltet og tilføje det bagpå linket, når der bliver trykket på en knap.
Avatar billede w13 Novice
30. maj 2007 - 16:16 #7
Prøv at se, om den kode, jeg sidst skrev, ikke virker :)
Den virker, når jeg prøver den.
Avatar billede christian_bp Nybegynder
30. maj 2007 - 16:17 #8
Tak for hjælpen, det virker nu...
Avatar billede w13 Novice
30. maj 2007 - 17:21 #9
Godt at høre, og tak for point! :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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