Hoe krijg ik woorden achter elkaar ipv onder elkaar met deze code?

Status
Niet open voor verdere reacties.

rolfohtar

Gebruiker
Lid geworden
23 aug 2008
Berichten
136
Ik ben bezig met een code die ervoor zorgt dat 3 input vakken een tekst/woord achter elkaar plaatsen in een output vak.
  • Input 1: een teken '['
  • Input 2: woorden onder elkaar 'woord1, woord2'
  • Input 3: een teken ']'

Input 2 ziet er dan als volgt uit:
woord1
woord2

Onderstaande code werkt en nu heb ik het zover dat de 3 input vakken als volgt samenvoegen in het output vak:
[woord1]
[woord2]

Nu wil ik graag de samenvoegingen in het output vak niet onder elkaar maar achter elkaar; als volgt:
[woord1][woord2]

Mijn vraag is als volgt: Hoe krijg ik de woorden achter elkaar ipv onder elkaar met deze code?

Wie kan mij hiermee helpen?

[JS] <script type="text/javascript">
function doAction()
{
var sep;
if(navigator.userAgent.indexOf("MSIE")>0)
sep = "\r\n";
else sep = "\n";

LeftS = document.getElementById("leftsymbol").value;
RightS = document.getElementById("rightsymbol").value;

InputS = document.getElementById("input").value
InputS = InputS.split(sep);

OutputS = new Array();
counter = 0;

tmpSpeed1 = "";
tmpSpeed2 = "";
for(i=0; i < InputS.length; i++)
{
if( (tmpSpeed1 = InputS.trim())!="")
OutputS[counter++] = LeftS + tmpSpeed1 + RightS;
}

document.getElementById("output").value = OutputS.join(sep);
}

function Fill(Symbol1, Symbol2)
{
LeftS = document.getElementById("leftsymbol");
RightS = document.getElementById("rightsymbol");
LeftS.value = Symbol1;
RightS.value = Symbol2;
}
</script>[/JS]
 
Nou, je join't ze via de sep, wat een nl/cr is. Dus, zoiets: verander dit[JS]document.getElementById("output").value = OutputS.join(sep);
[/JS]naar dit:[JS]document.getElementById("output").value = OutputS.join();
[/JS]:thumb:
 
Vegras! Ontzettend bedankt!

Jouw oplossing zorgde er inderdaad voor dat het achter elkaar kwam te staan, maar wel door een komma gescheiden.
[JS]document.getElementById("output").value = OutputS.join();[/JS]

Ik heb er het volgende gemaakt om het door niets te laten scheiden:
[JS]document.getElementById("output").value = OutputS.join('');[/JS]

Dus ontzettend bedankt!
 
Nu kom ik toch met nog een vraag die aansluit op mijn vorige (gaat om dezelfde code).

Ik wil er nu ook graag de mogelijkheid inzetten om de rij verticaal te houden:
[woord1]
[woord2]

Het lijkt mij dat dit kan door middel van een checkbox:
HTML:
<input type="checkBox" checked=false value=RijMaken id="RijMaken"> Rij maken

Wat moet ik dan aan mijn huidige code aanpassen om dit voor elkaar te krijgen. Dus wanneer de checkbox is aangevinkt, dan moet de output tekst verticaal komen te staan en niet aan elkaar geregen.

Hoe komt de code er dan uit te zien?
 
Mijn javascript is een beetje roestig, maar ongeveer dit:

[js]
if ( document.getElementById("RijMaken" ).checked() ) {
// aangevinkt, dus seperator
document.getElementById("output").value = OutputS.join( sep );
} else {
// niet aangevinkt, dus geen sep.
document.getElementById("output").value = OutputS.join( '' );
}
[/js]
 
Bedankt voor jullie reacties, Supersnail en Frats! Het klinkt logisch met die code. Waar zet ik deze dan neer in de code die ik in het eerste bericht heb gepost?
 
Inplaats van regel 26 dit:[JS] document.getElementById("output").value = OutputS.join(sep);[/JS]dit:[JS]if ( document.getElementById("RijMaken" ).checked) {
// aangevinkt, dus seperator
document.getElementById("output").value = OutputS.join( sep );
} else {
// niet aangevinkt, dus geen sep.
document.getElementById("output").value = OutputS.join( '' );
}[/JS]
 
Dat was de oplossing Vegras!
Bedankt voor iedereens moeite!

De code ziet er nu als volgt uit:

[JS] <script type="text/javascript">
function doAction()
{
var sep;
if(navigator.userAgent.indexOf("MSIE")>0)
sep = "\r\n";
else sep = "\n";

LeftS = document.getElementById("leftsymbol").value;
RightS = document.getElementById("rightsymbol").value;

InputS = document.getElementById("input").value
InputS = InputS.split(sep);

OutputS = new Array();
counter = 0;

tmpSpeed1 = "";
tmpSpeed2 = "";
for(i=0; i < InputS.length; i++)
{
if( (tmpSpeed1 = InputS.trim())!="")
OutputS[counter++] = LeftS + tmpSpeed1 + RightS;
}

if ( document.getElementById("RijMaken" ).checked) {
// aangevinkt, dus seperator
document.getElementById("output").value = OutputS.join( sep );
} else {
// niet aangevinkt, dus geen sep.
document.getElementById("output").value = OutputS.join( '' );
}
}

function Fill(Symbol1, Symbol2)
{
LeftS = document.getElementById("leftsymbol");
RightS = document.getElementById("rightsymbol");
LeftS.value = Symbol1;
RightS.value = Symbol2;
}

</script>[/JS]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan