span waarde veranderen in input (type=text)

Status
Niet open voor verdere reacties.

Doeke Norg

Gebruiker
Lid geworden
17 aug 2008
Berichten
38
Waarde mensen,

Ik zit met het volgende mysterie. Ik ben nog maar een n00bje qua javascript. Nog nooit iets heel fancy's mee gedaan en dat is hoogstwaarschijnlijk het probleem :)

Ik heb een <span>-tag (yeah I know) wiens waarde ik wil veranderen in een text invoerveld. Dus stel er staat
Code:
<span id="test1">23</span>
dan wil ik dat veranderen in
Code:
<span id="test1"><input type="text" name="test1" value="23"/></span>

Alles goed en wel, dit is me gelukt. Nadat ik op enter druk in het tekstvak veranderd het fijn weer terug naar een span en is de waarde veranderd. Enkel, wanneer ik het OPNIEUW wil doen (op die nieuwe waarde klikken om deze te veranderen) gebeurt er niets meer.

Hieronder de korte code:

Code:
<script type="text/javascript">
function changetoinput(part)
{
	var element = document.getElementById("test_" + part);
	var content = element.innerHTML;
	element.onclick = null;
	document.getElementById("test_" + part).innerHTML = "<input type=\"text\" name=\"hours_given_" + part + "\" value=\"" + content + "\" onkeypress=\"javascript:onreturn(event,"+part+",this.value);\" />";
}
function onreturn(event,part,content)
{
	var element = document.getElementById("test_" + part);
	element.onclick="javascript:changetoinput("+ part + ");";
	
	var keynum;
	if(window.event) keynum = event.keyCode;
	else if(event.which) keynum = event.which;
	
	if(keynum == 13)
	{
		element.innerHTML = content;		
		element.onclick="javascript: changetoinput(" + part + ")";
	}
}
</script>

<span id="test_1" onclick="javascript:changetoinput(1);">23</span>
 
Laatst bewerkt:
Het i ondertussen gelukt. Het probleem was het volgende.
Bij een element.onclick mag je geen gebruik maken van de (). De plek waar de paramaters worden opgegeven dus.

De oplossing is alsvolgt: event.onclick = function() { //aanroepen functie met parameters };
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan