Avatar billede kledal Nybegynder
10. august 2004 - 15:39 Der er 16 kommentarer og
1 løsning

få et billede med tilhørende link frem ved indtastning i et felt

Jeg har et textfelt, når jeg i dette har indtastet en speciel syntax skal jeg have et billede med tilhørende link frem til højre for min textfelt. linket skal indeholde det man har skrevet i textfeltet. Hvordan får man det til at ske? Kan man lave noget med document.createElement eller noget?

/kledal
Avatar billede roenving Novice
10. august 2004 - 15:43 #1
Det bedste vil være, at du har elementet i forvejen, men ikke viser det før teksten passer !-)

-- hvordan har du tænkt dig at det skal være ?-)

À la dit adresse-spørgsmål ?o]
Avatar billede kledal Nybegynder
10. august 2004 - 15:51 #2
det er en adresse som jeg skal søge på.
mit script ser indtil videre sådan her ud
straddress = straddress & "<SCRIPT>function " & name & "_onkeydown() {var tmpvalue=event.srcElement.value;"
        "var strStreetName = ""([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)+"";"
        "var strStreetNumber = ""[0-9]+( )?(([0-9]?)?)+(([A-Za-z])?)+"";"
        "var strspace = ""(( )?)+(([,-]{1})?)(( )?)+"";"
        "var strZipCode = ""[0-9]{4}"";"
        "var strCityName = ""([A-Za-zæøåÆØÅüÜéèÉÈ]+( )?)+(\.)?"";"
        "if (tmpvalue.match(strStreetName + strStreetNumber + strspace + strZipCode + strspace + strCityName)){ "

her skal der så indsættes noget som får et billede med link til at vise sig til højre for textfeltet. det ovenstående virker fint.

"return true;}}</SCRIPT>"

/kledal
Avatar billede roenving Novice
10. august 2004 - 15:58 #3
Så skal du indsætte noget i denne stil:

  document.images['adresselink'].style.visibility = 'visible';

-- hvis så teksten fra adressen skal bruges som link, vil jeg anbefale, at du opretter en variable, som kan være grundinitialiseret, f.eks. helt i starten af en javascript-blok:

  var adrlink = "minLinkSide.asp?adr=";

I ovenstående tilføjer du så denne linje:

  adrlink += tmpvalue;

Billedet skal så laves sådan:

<img name="adresselink" src="adressebillede.jpg" onclick="window.location.href=adrlink;">
Avatar billede kledal Nybegynder
11. august 2004 - 08:45 #4
den siger at den ikke kender adrlink (adslink is undefined). Og hvordan sætter jeg stylen til hidden på img?
Avatar billede roenving Novice
11. august 2004 - 10:14 #5
Argh, den havde jeg ikke fået sat ind:

<img name="adresselink" src="adressebillede.jpg" onclick="window.location.href=adrlink;" style="visibility:hidden;">

-- hvis den ikke kender adrlink, så er det fordi du ikke har indsat:

  var adrlink = "minLinkSide.asp?adr=";

Den skal stå i en javascript-blok, f.eks. som linjen efter <script>-tagget !-)
Avatar billede kledal Nybegynder
11. august 2004 - 14:29 #6
den kender ikke adrlink, selvom jeg har den i min javascript-blok. Jeg forstår det ikke, her er min kode.

<INPUT onkeydown="return meetplace_onkeydown();" id=strmeetplace name=strmeetplace title="Skriv her hvor arrangementet foregår" size=50 value="" maxlength=100 class="fieldinput" onchange="return meetplace_onchange()"><SCRIPT>function meetplace_onchange() {var nullok=true; var tmpvalue=event.srcElement.value; if (tmpvalue.length==0) { if (!nullok) { alert('Dette felt skal udfyldes'); return false; }} return true;}</SCRIPT><SCRIPT language="Javascript">function meetplace_onkeydown() {var tmpvalue=event.srcElement.value;var strlink = "http://mitkort.dk";var strStreetName = "([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)+";var strStreetNumber = "[0-9]+( )?(([0-9]?)?)+(([A-Za-z])?)+";var strspace = "(( )?)+(([,-]{1})?)(( )?)+";var strZipCode = "[0-9]{4}";var strCityName = "([A-Za-zæøåÆØÅüÜéèÉÈ]+( )?)+(\.)?";if (tmpvalue.match(strStreetName + strStreetNumber + strspace + strZipCode + strspace + strCityName)){ document.images['adresselink'].style.visibility = 'visible';return true;}else{document.images['adresselink'].style.visibility = 'hidden';return true;}}</SCRIPT><img name="adresselink" src="images/sol/smalleniro.gif" onclick="window.location.href=strlink;" style="visibility:hidden;">

jeg har blot skiftet navnet til strlink.
Avatar billede roenving Novice
11. august 2004 - 14:38 #7
Du gør den netop til en lokal variable, når du putter den ind i en funktion, derfor bemærkningen om, at den f.eks. skulle være første linje i en script-blok:

<input onkeydown="return meetplace_onkeydown();" id=strmeetplace name=strmeetplace title="Skriv her hvor arrangementet foregår" size=50 value="" maxlength=100 class="fieldinput" onchange="return meetplace_onchange()">
<script type="text/javascript">
var strlink = "http://mitkort.dk";function meetplace_onchange() {var nullok=true; var tmpvalue=event.srcElement.value; if (tmpvalue.length==0) { if (!nullok) { alert('Dette felt skal udfyldes'); return false; }} return true;}function meetplace_onkeydown() {var tmpvalue=event.srcElement.value;var strStreetName = "([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)+";var strStreetNumber = "[0-9]+( )?(([0-9]?)?)+(([A-Za-z])?)+";var strspace = "(( )?)+(([,-]{1})?)(( )?)+";var strZipCode = "[0-9]{4}";var strCityName = "([A-Za-zæøåÆØÅüÜéèÉÈ]+( )?)+(\.)?";if (tmpvalue.match(strStreetName + strStreetNumber + strspace + strZipCode + strspace + strCityName)){ document.images['adresselink'].style.visibility = 'visible';return true;}else{document.images['adresselink'].style.visibility = 'hidden';return true;}}
</script>
<img name="adresselink" src="images/sol/smalleniro.gif" onclick="window.location.href=strlink;" style="visibility:hidden;">
Avatar billede kledal Nybegynder
11. august 2004 - 14:59 #8
ok, min fejl, jeg havde misforstået :-)
Hvis jeg vil have den til at åbne i nyt vindue hvad er det så jeg skal skrive?
/kledal
Avatar billede kledal Nybegynder
11. august 2004 - 15:05 #9
og en anden ting når jeg skriver
strlink += tmpvalue; Så bliver alle værdierne som har været rigtige tilføjet linjen strlink. Det skal kun være den nyværende tekst som står i feltet som skal tilføjes, hvordan gøres det?
Avatar billede roenving Novice
11. august 2004 - 15:09 #10
<script type="text/javascript">
var strlink = "";...

-- og så der, hvor du har værdien:

strlink = "http://mitkort.dk" + tmpvalue;

-- og et nyt vindue:

<img name="adresselink" src="images/sol/smalleniro.gif" onclick="window.open(strlink,'nytVindue');" style="visibility:hidden;">
Avatar billede kledal Nybegynder
11. august 2004 - 15:28 #11
tusind tak for hjælpen, svar og du skal få point :-)
Avatar billede roenving Novice
11. august 2004 - 15:30 #12
Velbekomme '-)
Avatar billede kledal Nybegynder
12. august 2004 - 10:23 #13
et sidste spørgsmål. Hvis jeg ønsker at dele querystringen op, altså dele adressen ved på følgende måde.
"var strStreetName = ""([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)([A-Za-zæøåÆØÅüÜéèÉÈ])+(( )?)+"";"
"var strStreetNumber = ""[0-9]+( )?(([0-9]?)?)+(([A-Za-z])?)+"";"
"var strspace = ""(( )?)+(([,-]{1})?)(( )?)+"";"
"var strZipCode = ""[0-9]{4}"";"
"var strCityName = ""([A-Za-zæøåÆØÅüÜéèÉÈ]+( )?)+(\.)?"";"
"strlink = ""http://kort.eniro.dk/query?what=amap&streetname="" + tmpvalue(strStreetName) + ""&streetnumber="" + tmpvalue(strStreetNumber) + ""&zipcode="" + tmpvalue(strZipCode) + ""&city="" + tmpvalue(strCityName);"
kan man gøre det?
Avatar billede roenving Novice
12. august 2004 - 13:23 #14
Du kan lave en split på whitespace i din string:

tmpstr = tmpvalue.split(/[\s,\.]/);

-- men det er svært at benytte bagefter, fordi der jo kan være mellemrum i både vej- og bynavne og også tal i vejnavnene, som gør det svært at finde den absolutte skille-linje mellem f.eks. vejnavn og vejnummer ...

-- og så skal du vel også huske at url-encode dine strings med f.eks. escape !-)
Avatar billede kledal Nybegynder
12. august 2004 - 13:35 #15
Jeg har jo syntaxen, kan jeg ikke dele tmpvalue op via den?
Jeg har scriptet i asp, men det skal jo laves om til javascript.

nedenstående giver den rigtige url

if objReg.Test(strInput) then
'            Response.Write "<font style=""color: blue;"">Correct<br />" & strInput & "&nbsp;<a target=""_blank"" href=""http://mitkort.dk/query?what=amap"
'            objReg.Pattern = "^" & strStreetName
'            Response.Write "&streetname=" & Trim(objReg.Execute(strInput)(0).value)
'            objReg.Pattern = "^" & strStreetName & "( )?" & strStreetNumber
'            Response.Write "&streetnumber=" & Right(objReg.Execute(strInput)(0).value, Len(objReg.Execute(strInput)(0).value) - InStrRev(objReg.Execute(strInput)(0).value, "(( )?)"))
'            objReg.Pattern = "(([,-]{1})?)( )?" & strZipCode
'            Response.Write "&postal_code=" & Right(objReg.Execute(strInput)(0).value, 4)       
'            objReg.Pattern = strCityName & "$"
'            Response.Write "&city=" & Right(objReg.Execute(strInput)(0).value, Len(objReg.Execute(strInput)(0).value) - InStrRev(objReg.Execute(strInput)(0).value, "( )?"))
'           
'           
''            &postal_code=&city= "    & strInput
'            Response.Write """>

kan man ikke gøre nogen lignende i javascript??
Avatar billede kledal Nybegynder
12. august 2004 - 13:46 #16
og iøvrigt, det ses ikke i netscape, skyldes det at jeg bruger style="visibility:hidden;"??
Avatar billede roenving Novice
12. august 2004 - 14:39 #17
-- den kan jeg ik' li'e gennemskue, men måske lidt senere ...

-- og style="visibility:hidden;" burde idag virke ens i browserne, i ns4-dagene skulle den have det som 'hide' ...

-- og forøvrigt: 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