Avatar billede sacrificed.dk Nybegynder
03. juni 2006 - 14:26 Der er 3 kommentarer og
1 løsning

Skrive tekst samt link på en side ved klik på en anden tekst

Jeg skal have lavet et script, der ved klik på et ord i en tabel skriver det samme ord et andet sted på samme side og samtidig laver et link ved den tekst der kommer frem, som gør det muligt igen at fjerne den fremkomne tekst.

Jeg har indtil videre fået lavet følgende script:

<SCRIPT LANGUAGE=JavaScript FOR=Players EVENT=onclick>

if(coachval.value=="")
{
if(event.srcElement.position=="Træner")
{
coach.innerText = event.srcElement.name;
coachval.value = event.srcElement.id;
coachnam.name = "coach"
}
}
else if(event.srcElement.position=="Træner")
{
alert("Du har allerede købt en træner. Sælg din træner, hvis du vil købe en anden")
}
</SCRIPT>


<SCRIPT LANGUAGE=JavaScript>

function coachdelete()
{
goalkeeper.innerText = ""
goalkeeperval.value = ""
goalkeepernam.name = ""
goalkeeperlink.innerHTML = ""
}
</script>

<form action="test.asp?mode=createteam" method=get>

<table align=center width=500 border=1>
    <tr>
        <td colspan=4 align=right>
<INPUT TYPE=hidden ID=coachval name=coachnam>
<SPAN ID=coach>&nbsp;</SPAN>
<a id=goalkeeperlink href="java script:coachdelete()"></a>
        </td>
    </tr>
</table>

<table cellspacing=0 cellpadding=0 ID=Players>
<%
dbname=Server.Mappath("../../db/manager.mdb")
set cn = server.createobject("ADODB.Connection")
constr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & dbname
cn.connectionstring = constr
cn.open

sql="select * from players where country='tyskland'"
set rs=cn.execute(sql)

do while not rs.eof
%>
    <tr>
        <td position="<%=rs("position")%>" name="<%=rs("firstname") & " " & rs("lastname")%>" country="<%=rs("country")%>" id="<%=rs("id")%>"><%=rs("firstname") & " " & rs("lastname")%></td>
    </tr>

<%
rs.movenext
loop
%>
</table>
</form>

Scriptet fungerer godt nok med at skrive teksten (spilleren) som man klikker på et andet sted på siden, og samtidig laves der et link, som udløser funktionen coachdelete(). Problemet er at når jeg trykker på dette link, får jeg en fejl, hvor den siger at coachval og coachnam ikke er defineret. Jeg er helt ny til Javascript, og det kan derfor godt være at der er nogle helt fundamentale fejl - måske kan det hele laves på en meget nemmere måde. Men jeg håber i hvert fald at I på den ene eller anden måde kan afhjælpe mit problem.

På forhånd tak...
Avatar billede sacrificed.dk Nybegynder
03. juni 2006 - 14:28 #1
Rettelse - der skal stå:
<SCRIPT LANGUAGE=JavaScript>

function coachdelete()
{
coach.innerText = ""
coachval.value = ""
coachnam.name = ""
coachlink.innerHTML = ""
}
</script>
Avatar billede thrytter Nybegynder
03. juni 2006 - 16:12 #2
Vil foreslå at du bruger value-attributten i stedet for name-attributten til opbevaring af trænerens/spillerens navn.

Hvis du vil have fat i et element på siden gøres det (bedst) ved:
var element = document.getElementById("IdPåElementet");

Når du så har fat i elementet kan du fange de forskellige attributter ved:
var n = element.name;
var v = element.value;

eller
var v = document.getElementById("IdPåElementet").value;
var n = document.getElementById("IdPåElementet").name;

Din slette-funktion kan skrives som:
<SCRIPT TYPE="text/javascript">
  function coachdelete()
  {
    document.getElementById("coach").innerText = "";
    document.getElementById("coachval").value = "";
    document.getElementById("coachval").name = "";
    document.getElementById("coachlink").innerHTML = "";
  }
</script>

Og husk at coach, coachval, coachval og coachlink skal være defineret på siden, dvs. der skal findes et objekt med id svarende til de 4.
Avatar billede sacrificed.dk Nybegynder
03. juni 2006 - 17:50 #3
Det virker, når bare jeg bruger din slette-funktion... getElementById is the way ;) Tak skal du have. Smid et svar og du får point
Avatar billede thrytter Nybegynder
03. juni 2006 - 17:56 #4
Du får lige et 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
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