Hjælp til span-til-textfield-ved-onclick script
Jeg har fundet et script på nettet som jeg kunne tænke mig at lave lidt om på, men jeg ved ikke helt hvordan.<head>
<style type="text/css">
.replace {
display:none;
}
</style>
<script type="text/javascript">
function exchange(el){
var ie = document.all && !document.getElementById ? document.all : 0;
var toObjId = /b$/.test(el.id) ? el.id.replace(/b$/,'') : el.id + 'b';
var toObj = ie ? ie[toObjId] : document.getElementById(toObjId);
if(/b$/.test(el.id))
toObj.innerHTML = el.value;
else{
toObj.style.width = el.offsetWidth + 7 + 'px';
toObj.value = el.innerHTML;
}
el.style.display = 'none';
toObj.style.display = 'inline';
}
</script>
</head>
<body>
<span id="itm1" onclick="exchange(this);">Hus</span><input ondblclick="exchange(this);" onblur="exchange(this);" id="itm1b" class="replace" type="text" value="">
<p><span id="itm2" onclick="exchange(this);">Have</span><input ondblclick="exchange(this);" onblur="exchange(this);" id="itm2b" class="replace" type="text" value=""></p>
<p><span id="itm3" onclick="exchange(this);">Hest</span><input ondblclick="exchange(this);" onblur="exchange(this);" id="itm3b" class="replace" type="text" value=""></p>
<p><span id="itm4" onclick="exchange(this);">Horsens</span><select ondblclick="exchange(this);" onblur="exchange(this);" id="itm4b" class="replace" size="1">
<option value="1">Anders</option>
<option value="2">Anne</option>
<option value="3">André</option>
</select></p>
<p><a href="salgstracker.php">Salgstracker</a></p>
</body>
Scriptet gør det at hvis man markerer en given tekst, bliver det erstattet med f.eks. et tekstfelt og så når man retter teksten og klikker igen, så skifter det tilbage til teksten som så er opdateret til den nye.
Problemerne er:
A: Hvordan gør jeg så al tekst i tekstfeltet bliver markeret når feltet bliver skiftet? Jeg skal indsætte select() et eller andet sted i exchange() funktionen har jeg fundet frem til, men hvor og hvordan ved jeg ikke.
B: Jeg har set lignende sider hvor man kan navigere imellem sådanne felter via tabulator. Kan det evt. indskrives i scriptet?
C: Når man benytter musen og klikker på en tekstblok, så laver den feltet om som den skal, men når man er færdig i det felt og klikker på en anden tekstblok, så forbliver det forrige tekstfelt fremme. Jeg tænker lige umiddelbart om man skal kontrollere hvor mange tekstfelter der er og så ændre dem der ikke er i brug.
D: Jeg har prøvet at se hvordan det opførte sig med et select i stedet for et textfield, når jeg klikker på teksten og markerer et punkt, så retter den teksten til værdien af det punkt jeg har valgt i stedet for labelen.
Et link til det hele i aktion: http://kaalakiota.dk/exp
Jeg ved godt det sted her ikke er et sted hvor man skriger efter en løsning og en eller anden sætter sig ned og laver det for en. Jeg har været en tur igennem søgefunktionen og google men har ikke fundet noget specielt brugbart. En del puf i den rette retning efterfulgt af en lang række dumme spørgsmål fra mig ville være top dollar.
På forhånd tak for hjælpen
