Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JS: input-kenttä ongelma

Triton [17.11.2010 16:03:14]

#

Mistä ihmeestä mahtaa johtua, kun lisään html-elementin sisään JavaScriptin innerHTML-ominaisuudella input-kentän ja vien siihen kohdistimen, niin kursori ei ala "vilkkumaan" normaaliin tapaan, vaan se välähtää kerran ja sitten kohdistus katoaa. Samoin jos kirjoitan kenttää jotain ja asetan kohdistuksen uudelleen kenttään, niin kentän sisältö muuttuu nulliksi.

JS-koodi näyttää seuraavalta:

function editContents(solunNimi) {

			var solu = document.getElementById(solunNimi);

			var lomake = "<form name=\"lomake\" />";
			lomake += "<input type=\"text\" name=\"sisalto\" value=\"" + solu.firstChild.nodeValue + "\" />";
			lomake += "</form>";

			solu.innerHTML = lomake;

		}

(Mod. vaihtoi JS-kooditagit.)

Metabolix [17.11.2010 16:24:07]

#

Kristallipallo kertoo, että kutsut editContents-funktiota joka kerta uudestaan. Lisäksi koodissa näkyy seuraavia ongelmia:

Oma toteutukseni olisi ehkä tällainen:

function edit(id) {
  var solu = document.getElementById(id);

  // Ei käsitellä samaa moneen kertaan.
  if (solu.getElementsByTagName("input").length) {
    return false;
  }

  // Haetaan sisältö; varaudutaan myös tyhjään soluun!
  var teksti = "";
  if (solu.firstChild) {
    teksti = solu.firstChild.nodeValue;
  }

  // Luodaan lomake ja laitetaan sisältö.
  solu.innerHTML = "<input type='text' />";
  solu.getElementsByTagName("input")[0].value = teksti;
}

Triton [17.11.2010 16:35:19]

#

Sulla on aikamoinen kristallipallo! :DD

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta