webForumDet fria alternativet

Lyckas inte att hantera variabler på ett korrekt sätt

JavaScript

8 svar · 414 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Får inte detta att fungera! Tanken är att man live skall se html-kod som genereras av vad man skriver in i den ena textarean!

<html>
<head>
<title>SIDA</title>
<script type="text/javascript">
<!--

function insert()
{
var str ='';
var str2 = '';

str += document.getElementById("text").value;

if (window.event.keyCode == 13)
  {
  str2 = str.replace("\n","<br />");
  }
			
if(str2 == '')
  {	
  document.form.visa.value=str; 
  }
else
  {
  document.form.visa.value=str2; 
  }
}
//-->
</script>

<body>

<form name="form">

<textarea id="text" name="test" cols="40" rows="10" onKeyUp="insert()"></textarea>
<hr>
<textarea name="visa" rows="10" cols="40"></textarea>
<br>
<input type="button" onClick="skriv()" value="Display alert box">
</form>
</body>
</html>

närman börjar med att skriva in tecken i textarean - test - visas texten texten som den skall. När man trycker in ett enter-slag börjar det krångla. Man får först en br-tagg men sen försvinner den? Jag är, som förmodligen min kod förtäljer, väldigt novis på området, men jag måste ju börja någonstans :birp

// Vic

Medlem sedan dec. 20025 483 inlägg
#2

När ett enterslag angivits ersätter och lägger du resultatet i str2, för att sedan tilldela detta till textarean. Vid nästa icke-enterslag-tryckning skriver du det som finns i str till textarean och där har ju inte '\n' ersatts. Därför försvinner <br>.

En lösning kan vara att endast arbeta med en sträng, str, och i if (window.event...) uppdatera textarean. :)

Medlem sedan apr. 2006244 inlägg
#3

Något sånt här?

var str ='';

function insert()
{

str += document.getElementById("text").value;

if (window.event.keyCode == 13)
  {
  str = str.replace("\n","<br />");
  }

document.form.visa.value=str; 
}

tyvärr blir de helt galet då :(

Medlem sedan dec. 20025 483 inlägg
#4

Så här blir nog bättre

function insert()
{
var str = document.getElementById("text").value;

  document.form.visa.value = str.replace("\n","<br />");
}
Medlem sedan apr. 2006244 inlägg
#5

Det lustiga är att den endast byter ut en \n mot br-taggen??

Medlem sedan aug. 20039 340 inlägg
#6
document.form.visa.value = str.replace(/\n/g,"<br />");
Medlem sedan apr. 2006244 inlägg
#7

tack å bock..

Medlem sedan apr. 2006244 inlägg
#8

finns det någon motsvarighet till php's explode i javascript??

Medlem sedan aug. 20039 340 inlägg
#9
alert("nolla|etta|tvåa|trea".split("|")[1]);
// Funkar även med regular expressions
alert("a1b2c3d4ef6g".split(/\d/)[1]);
// implode görs med join
alert(["a","b","c"].join("|"));
258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)