Avatar billede vels Nybegynder
24. februar 2004 - 12:21 Der er 13 kommentarer og
1 løsning

Indsæt værdi fra dropdown i felt

Hej jeg har en form som ser sådan ud:

<html>
    <head>
        <title>Untitled</title>
<script type="text/javascript">
var harFokus
var ie = (document.selection.createRange)?true:false
var elms = ['smiley','ting','andreTing'];

function lukAlt(elmid){
for(i=0;elms.length>i;i++)
  if(elmid!=elms[i])
    document.getElementById(elms[i]).style.display = "none";
}

function visTing(elmid){
lukAlt(elmid);
elm = document.getElementById(elmid);
elm.style.display = (elm.style.display!="block")?"block":"none";
}

function indsaet(smil){
if(ie){
  if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  }
}else
  document.frm.tekst.value += smil
}

function efter(){
document.frm.tekst.focus();
}

</script>
<style type="text/css">
.title{
    display:block;
    margin:0px;
    text-align:center;
    border-bottom:1px solid #000;
    background-color:#6777B3;
}
.luk{float:right;}
.ting{
    border:1px solid #000;
    position:absolute;
    height:100px;width:500px;
    display:none;
    }
</style>
    </head>

<body>
<form action="compile.php" method="post" name='frm'>
Filnavn:<br>
<input name="filnavn" value=".tex"><br>
Tekst<br>
<textarea onfocus="harFokus = true;" onblur="harFokus = false"; style="width:644px;height:390px;" name="tekst">
</textarea><br><br>
<a href="java script:void(0)" onclick="visTing('smiley');">Indsæt Matematik</a> | <a href="java script:void(0)" onclick="visTing('ting');">Greek</a> | <a href="java script:void(0)" onclick="visTing('andreTing');">Tydsk</a> <br>

<div id="smiley" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('smiley')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Matematik&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\frace{}{}')" onmouseup="efter();">Brøk</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('x^{}')" onmouseup="efter();">x^k</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('\\sqrt{}')" onmouseup="efter();">Kvadratrod</a>&nbsp;
</div>

<div id="ting" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('ting')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Greek</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>

<div id="andreTing" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('andreTing')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Tydsk&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>
<br><br><br><br><br><br>
<input type="submit" name="Compile" value="Compile"> <input type="reset" name="Rensfelter" value=Reset>
</form>
<br>
</body>
</html>

NU vil jeg gerne have en drop down som ser sådan her ud:
<form name="form1" method="post" action="">
  <select name="select">
    <option value="1">Billede 1</option>
    <option value="2">Billede 2</option>
    <option value="3">Billede 3</option>
  </select>
  <input type="submit" name="Submit" value="Inds&aelig;t billede">
</form>

Hvordan er det nu lige koden skal se ud... for at når man vælger billede 1 og trykker indsæt så bliver der indsat værdien fra drop downmenuen?? Værdien skal placeres der hvor man lige inden har placeret kurseren i tekstfeltet. Nogle der kan hjælpe?
Avatar billede roenving Novice
24. februar 2004 - 12:29 #1
<select name="minSelect" onchange="indsaet(this.value);">
Avatar billede vels Nybegynder
24. februar 2004 - 14:43 #2
Virker det for dig hvis du indsætter det her ind under form:
<select name="minSelect" onchange="indsaet(this.value);">
    <option value="1">Billede 1</option>
    <option value="2">Billede 2</option>
    <option value="3">Billede 3</option>
  </select>

For jeg syndes ik lige det virker :(
Avatar billede roenving Novice
24. februar 2004 - 14:52 #3
Det er din blur-funktion på textarea'et, som gør det !-)

For når select-boxen får fokus, må textarea'et nødvendigvis blurres !-)
Avatar billede vels Nybegynder
24. februar 2004 - 15:15 #4
øhe?? blur??
Avatar billede roenving Novice
24. februar 2004 - 15:17 #5
onblur="harFokus = false"

Fordi harFokus er false, når selecten aktiveres, vil indsættelses-funktionen ikke gå i gang ...
Avatar billede vels Nybegynder
24. februar 2004 - 15:23 #6
dvs så kan det ik laves?
Avatar billede roenving Novice
24. februar 2004 - 15:28 #7
Virker dine andre indsættelses-funktioner ?-)

For sådan som funktionen er lavet, ser det ud til at den skal forhindre indsættelse, hvis man foretager sig noget udenfor textarea'et ...

Kender du en forklaring på, at onfocus og onblur er lavet på den måde, for umiddelbart virker det ikke så smart !-)
Avatar billede vels Nybegynder
24. februar 2004 - 15:31 #8
de sidste må jeg sige pas til :(

De andre indsætte nogle virker fint
Avatar billede roenving Novice
24. februar 2004 - 15:48 #9
-- de virker da netop ikke fint, da der skal klikkes to gange for at få indsat noget, og det er præcis pga. den harFokus-ting !-)

Prøv at fjerne onfocus og onblur fra textarea, og brug denne i stedet:

function indsaet(smil){
if(ie){
  document.frm.tekst.focus();
  //if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  //}
}else
  document.frm.tekst.value += smil
}
Avatar billede vels Nybegynder
24. februar 2004 - 17:40 #10
vi har en vinder :) be om et svar tak :)
Avatar billede roenving Novice
24. februar 2004 - 17:45 #11
Velbekomme '-)
Avatar billede roenving Novice
24. februar 2004 - 17:55 #12
-- og tak for points ;~}
Avatar billede vels Nybegynder
02. marts 2004 - 11:32 #13
kan det godt laves sådan at jeg har selve dropdown i et frame, og selve formen det indsættes i en anden frame?
Avatar billede roenving Novice
03. marts 2004 - 00:17 #14
Det ved jeg faktisk ikke, for den problematik har jeg ikke pillet i !-)

-- men måske kunne man gøre noget ved, som start på funktionen, at flytte fokus over til framen, og så udføre funktionerne imod framen:

function indsaet(smil){
d = parent.denAndenFrame.document;
d.focus();
if(ie){
  d.frm.tekst.focus();
  //if (harFokus) {
  rng = d.selection.createRange();
  rng.text = smil;
  //}
}else
  d.frm.tekst.value += smil
}

-- du kan jo prøve !o]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester