Avatar billede bhn.314 Nybegynder
17. november 2003 - 13:18 Der er 9 kommentarer og
1 løsning

Knap erstatter sig selv

Jeg har et script der aktiveres ved tryk på knap/button. Scriptet indsætter et inputfelt på siden når man forlader feltet igen skal den nævnte knap erstattes af en anden knap med andre attributter. MEN scriptet kommer med en kørselsfejl (ikke syntaksfejl)

Knap 1  = onclick vis input felt X
input x = onblur erstat knap 1 med knap 2

Er der en anden løsning hvor man et element kan erstatte sig selv ?
Avatar billede roenving Novice
17. november 2003 - 13:21 #1
?-)

Prøv lige at vise den kode, du har !-)
Avatar billede bhn.314 Nybegynder
17. november 2003 - 14:34 #2
Her er scriptet:

function createInput (idName, type)
{
  blah = document.getElementById(idName);
  newInnerHTML = '';
  newInnerHTML += '<input type="text" id="500" onBlur="createInput('100', 'button')">'
  blah.innerHTML = newInnerHTML;
}

Og html'en
<input type="text" id="500">
<input type="button" id="100" onclick="createInput('500', 'text')">
Avatar billede roenving Novice
17. november 2003 - 14:39 #3
Du kan ikke have en identifier, du bruger i javascript, som starter med et tal, så lav dine id'er om til f.eks. id100 og id500 ...
Avatar billede bhn.314 Nybegynder
17. november 2003 - 14:44 #4
Glem ovenstående - det var dette script:

<html>
<head></head>

<body>

<script>
function createInput (idName, newFields)
{
  blah = document.getElementById(idName);
  newInnerHTML = '';
  for (i=0;i<newFields.length;i++)
  {
        newInnerHTML += '<input type="' + newFields[i][2] + '" name="' + newFields[i][0] + '" value = "' + newFields[i][1] + '" onclick="createInput(\'100\', new Array(new Array(\'100\', \'GEM\', \'button\')))" >'
  }
  blah.innerHTML = newInnerHTML;
}
</script>

<table>
<tr>
<td id="500"></td>
</tr>
</table>

<input type="button" value="Skift" name="kanp1" id="100" onclick="createInput('500', new Array(new Array('500', 'Nummer', 'text')))">

</body>
</html>
Avatar billede bhn.314 Nybegynder
17. november 2003 - 14:48 #5
Det er muligt men det ændre ikke ved problemstillingen..... Har prøvet at ændre id'erne
Avatar billede bhn.314 Nybegynder
17. november 2003 - 14:50 #6
Javascript smider en fejl med "Der opstod en ukendt kørselsfejl" i linie 15 tegn 3, dvs. i linien:

blah.innerHTML = newInnerHTML;
Avatar billede roenving Novice
17. november 2003 - 14:53 #7
Det er fordi en input ikke kan have noget innerHTML, du må sætte en f.eks. en span omkring:

<html>
<head></head>

<body>

<script>
function createInput (idName, newFields)
{
  blah = document.getElementById(idName);
  newInnerHTML = '';
  for (i=0;i<newFields.length;i++)
  {
        newInnerHTML += '<input type="' + newFields[i][2] + '" name="' + newFields[i][0] + '" value = "' + newFields[i][1] + '" onclick="createInput(\'i100\', new Array(new Array(\'i100\', \'GEM\', \'button\')))" >'
  }
  blah.innerHTML = newInnerHTML;
}
</script>

<table>
<tr>
<td id="i500"></td>
</tr>
</table>

<span id="i100"><input type="button" value="Skift" name="kanp1" onclick="createInput('i500', new Array(new Array('i500', 'Nummer', 'text')))"></span>

</body>
</html>
Avatar billede bhn.314 Nybegynder
17. november 2003 - 15:09 #8
Til roenving: Du har lige reddet min dag - Tusind tak. Smid et svar så får du point.
Avatar billede roenving Novice
17. november 2003 - 15:16 #9
Velbekomme '-)
Avatar billede roenving Novice
17. november 2003 - 15:38 #10
-- og tak for points ;~}
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