Avatar billede dotcom1 Nybegynder
01. juli 2009 - 15:17 Der er 8 kommentarer og
1 løsning

Hent value fra input og indsæt i link

Hej.

Jeg har en form:

<form name="distance" action="#" onsubmit="showLocation(); return false;">
        <input type="text" name="address1" value="adresse1" size="30" />
        <input type="text" name="address2" value="adresse2" size="30" />
        <input type="submit" name="find" value="Go!" />
</form>

og jeg vil gerne kunne hente værdien i første inputfelt (value="adresse1") og vise det som en del af et link. Kan man det, og behøver man at submitte først?

Værdien i første input felt vil typisk være tom når siden loades, men hvis den er udfyldt, vil jeg gerne kunne hente den.

På forhånd tak for al hjælp.
Avatar billede dotnewbi Juniormester
01. juli 2009 - 15:25 #1
<script type="type="text/javascript">
function getValue(fieldId,LinkId){
var FieldValue = document.getElementById(fieldId).value;
document.getElementById(LinkId).innerHTML = FieldValue;
}
</script>

<form name="distance" action="#" onsubmit="showLocation(); return false;">
        <input onchange="getValue(this.id,'mylink')"  id="address1" type="text" name="address1" value="adresse1" size="30" />
        <input onchange="getValue(this.id,'mylink2')" id="address2" type="text" name="address2" value="adresse2" size="30" />
        <input type="submit" name="find" value="Go!" />
</form>

<a  id="mylink" href="">some text</a>
<a  id="mylink2" href="">some text</a>
Avatar billede dotnewbi Juniormester
01. juli 2009 - 15:27 #2
hmm tjek lige om værdien er tom!

<script type="type="text/javascript">
function getValue(fieldId,LinkId){
if(document.getElementById(fieldId).value != ""){
var FieldValue = document.getElementById(fieldId).value;
document.getElementById(LinkId).innerHTML = FieldValue;
}
}
</script>
Avatar billede dotcom1 Nybegynder
01. juli 2009 - 15:42 #3
Tak for svar. Det ligner noget.

Men jeg vil gerne indsætte værdierne som variabler i dette link: href="http://maps.google.com/maps?saddr=address1&daddr=address2" - hvordan gøres det?
Avatar billede roenving Novice
01. juli 2009 - 15:49 #4
Hvorfor submitter du ikke bare, for så kommer værdierne jo netop i urlen, som du ønsker ...

<form name="distance" action="http://maps.google.com/maps" onsubmit="showLocation();">
Avatar billede dotnewbi Juniormester
01. juli 2009 - 15:53 #5
Så skal funktionen udbygges en dele.
ParentId er id'et på det element som linket er placeret inde i f.eks hvis der er placeret inde i en div med id'et "MyParent" vil dette være parentId

AfterId er Id'et af det element som link'et når det bliver genoprettet skal være placeret efter i html code.

<script type="type="text/javascript">
function getValue(ParentId,fieldId,LinkId,AfterId){
if(document.getElementById(fieldId).value != ""){
var MyHtml = document.getElementById(fieldId).innerHTML;
document.getElementById(ParentId).removeChild(document.getElementById(LinkId));

var strLink = "www.somepage.dk?test=" + document.getElementById(fieldId).value;

var NDiv=document.createElement('a');
NDiv.innerHTML = MyHtml;
NDiv.setAttribute('id',LinkId);
NDiv.setAttribute('href',strLink);

document.getElementById(ParentId).insertBefore(NDiv,document.getElementById(AfterId));
}
</script>
Avatar billede dotcom1 Nybegynder
01. juli 2009 - 15:58 #6
Det lyder nemt, men kan ikke lige på det til at virke. Der sker ikke noget.
Formen beregner afstanden mellem to punkter via Google Maps. Linket er ikke en del af det, men ligger et andet sted på siden...tænkte bare at det kunne være nemt hvis, linket (til en kørselsvejledning) kunne blive opdateret med de værdier, som brugeren indtastede.
Avatar billede dotcom1 Nybegynder
01. juli 2009 - 16:03 #7
>> #5: Okay, lyder godt. Hvordan skal linket eller html'en så se ud?
Avatar billede dotnewbi Juniormester
01. juli 2009 - 17:06 #8
<div id="patentId">
<div id="afterId" style="display:none;"></div>//behøves kun hvis der ikke er et andet element før linket i html koden der kan bruges
<a  id="mylink" href="www.somepage.dk">some text</a>

</div>
Avatar billede dotcom1 Nybegynder
02. juli 2009 - 21:36 #9
Hej.

Jeg har fundet en anden løsning, som er mere simpel:

<script type="text/javascript">

function showDirections(){
    document.location="http://maps.google.com/maps?saddr="+escape(document.getElementById("address1").value)+"&daddr="+escape(document.getElementById("address2").value);
}

</script>

<a href="#" onclick="java script:showDirections(); return false;" target="_blank">Klik</a>

Men du skal have mange tak for din tid, og pointene er selvfølgelig dine. :)

Mvh.
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