Bij onClick een textveld geven

  • Onderwerp starter Onderwerp starter tomdb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

tomdb

Gebruiker
Lid geworden
10 nov 2008
Berichten
417
Hallo mensen,
ik ben deze week begonnen met JavaScript, maar het wil nog niet echt lukken;). Ik heb dit: een formulier waarmee een bestandsnaam kan worden gewijzigd. Als je op de knop "Wijzigen" klikt, zou er een textveld achter de knop moeten verschijnen, helaas doet ie dat niet. Het liefst zou ik natuurlijk hebben dat de "Wijzigen" knop plaatsmaakt voor het textveld. Dit textveld moet overigens de value van de bestandsnaam hebben, die via een hidden input in het formuliertje verscholen zit. De code die ik heb en dus niet werkt:
[JS]
function wijzig_file() {
var file_name = document.file_form.getElementById( file );
document.write( "<td><input type='text' value='" + file_name + "' onChange='javascript:document.file_form.submit()'></td>");
}
[/JS]
Het formulier:
PHP:
$fVal .= "<form method='post' action='parser.php' name='file_form'>
							<input type='hidden' name='action' value='10a'>
							<input type='hidden' name='att_user' value='" . $row_attachments['user'] . "'>
							<input type='hidden' name='file' value='" . $row_attachments['name'] . "'>
							<tr><td>" . $row_attachments['name'] . "</td>
							<td>
							<input type='button' value='Wijzigen' onClick='javascript:wijzig_file()'>
							</td>
							<td>
							<a href='parser.php?action=10b&file=" . $row_attachments['name'] . "&user=" . $row_attachments['user'] . "'>
							<input type='button' value='Verwijderen'></a></td></tr></form>";
Wie kan mij helpen?
 
Laatst bewerkt:
Een paar punten,

Je variabele file_name bevat een referentie naar een object. Daar moet nog .value achter om de waarde te krijgen.

document.write gebruiken in een functie is ook niet handig, want dan zal JS je code helemaal aan het einde van het document plaatsen.

Dit werkt in FireFox, voor IE kreeg ik het zo snel niet voor elkaar...

[JS]
<html>
<head>
<script type="text/javascript">
function change() {

var obj = document.getElementById('whatever');
var file_name = document.getElementById('file_name').value;

obj.setAttribute('type', 'text');
obj.setAttribute('value', file_name);

}
</script>
</head>
<body>
<input type="hidden" id="file_name" value="bestand.html" />
<input type="button" id="whatever" value="Klik" onclick="change()" />
</body>
</html>
[/JS]

Je kunt ook beide element bij het laden al in het document plaatsen, maar 1 daarvan met display: none, dan kun je bij het klikken de button onzichtbaar maken en de display van het invulveld op inline zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan