Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:22 Der er 21 kommentarer og
1 løsning

insertAdjacentHTML

Findes der også en funktion der kan slette html fra en side ???

Sådan at det man insætter insertAdjacentHTML også kan fjernes igen ???
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:29 #1
Kan du ikke bruge selection.clear()
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:32 #2
øhh, det ved jeg ikke ... du får lige koden jeg brugte så kan du se om du kan tilføje det:

<input type="button" value="Add a file" onClick="return(Expand())" style="border=0;background=white;cursor:hand">

<div id="fields">
Felt 1: <input type="file" name="File1"><select><option>Tekst</option><option>Nummer</option><option>Ja/Nej</option><option>Notat</option></select>
</div>

<input type="submit" value="Upload the files >>">

<Script>
var nfiles = 1;
function Expand(){
    nfiles++
    fields.insertAdjacentHTML('BeforeEnd','<BR> Felt '+nfiles+': <input type="file" name="File'+nfiles+'"><select><option>Tekst</option><option>Nummer</option><option>Ja/Nej</option><option>Notat</option></select><input type="button" value="Remove this field" onClick="return(Remove('+nfiles+'))"');
    return false
}

Nu mangler jeg bare funktionen Remove :)
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:38 #3
Det er lidt svært når jeg ikke kan se hvordan det virker.

Din "Add a file" giver fejl.
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:42 #4
Hmm, den virker fint her ...

Du bruger IE ik'?

Der mangler et </Script> til sidst i ovenstående ...
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:45 #5
Ja ;) I know.
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:45 #6
Okay, har lige uploadet det "originale" script her:

http://www.melanders.dk/test.htm
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:46 #7
Virker det ?

Kan du tilføje en funktion så man på hver linie kan kan fjerne linien ved at klikke på en knap ???
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:48 #8
Nej - jeg tænder lige den anden pc - denner her kører IE4 :)
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:50 #9
Okay, det kan godt være at den ikke understøtter funktionen :(
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:52 #10
<a href="java script:;" onclick="selection.clear()">Slet</a>

Virker fint her (du skal trække hen over det du vil slette)
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:53 #11
Okay prøver det lige ...
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 11:54 #12
Er måske lidt "farlig" at bruge da man også kan slette dine andre knapper *G*
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 11:58 #13
Nååå, nu forstod jeg det med trække hen over det jeg slette :)

Øhh, det var ikke lige sådan jeg havde forestillet mig det skulle fungere ...

Jeg havde forestillet mig at ud for hver linie man lavede skulle ha' en knap el. et link ... og hvis man trykkede på denne/dette skulle den fjerne linien ...

Kan det ikke lade sig gøre ?
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 12:01 #14
Jow det kan det sikkert - men så skal det du har nok laves noget om. Der skal da i hvert fald laves så hvert "felt" får et unikt id - ellers ved den jo ikke hvad den skal slette.
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 12:02 #15
Nej det er jo det ... Kan du lave det ? Jeg er nemlig ikke så "hård" til javascript og dthml ... jeg smider gerne flere point oven i ... de siger bare hvor mange du skal bruge ...
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 12:04 #16
Jeg er heller ikke "hård" :)

Jeg skal forsøge - point er fint som det er.
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 12:07 #17
Tak
Avatar billede pelkjaer Nybegynder
19. oktober 2002 - 13:02 #18
Jeg kan sq' ikke hitte ud af det.

forstår ikke hvorfor dette ikke virker

var nfiles = 1;
function Expand(){
    nfiles++
    fields.insertAdjacentHTML('BeforeEnd','<BR> Felt '+nfiles+': <input type="file" name="File'+nfiles+'"><select><option>Tekst</option><option>Nummer</option><option>Ja/Nej</option><option>Notat</option></select><span><a href="java script:Remove('+nfiles+');">slet</a></span>');
    return false;
}
Avatar billede nute Nybegynder
19. oktober 2002 - 13:32 #19
du skal nok gjøre det litt anderledes ... jeg har modifisert et gammelt script jeg har liggende ... se om ikke dette kan hjelpe deg:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title></title>

<style>
  body{font: 13px verdana,sans-serif;}
  a:link{text-decoration:none;font-weight:bold;}
  a:visited{text-decoration:none;font-weight:bold;}
  a:active{text-decoration:none;font-weight:bold;}
  a:hover{text-decoration:none;font-weight:bold;}
</style>

<script language="JavaScript" type="text/javascript">
<!--

function addarea(element, formObj ){
  var newElem, val, formatText, removeText;
  val = document.getElementById('afsnitcount').value++;
 
    // Building text for removing elements
    removeText = "<br /><a href=\"java script:removeArea(" + val + ")\">Slet</a><p />";
   
    // inserting the layer containing formelement formatting options
  newElem = document.createElement('DIV');
    newElem.name = "formatElem" + val;
    newElem.style.display="inline";
    formObj.insertBefore(newElem, afsnit);
   
    // Write content to layer
    writeTextToLayer( "", newElem.name, formObj );
   
    // Adding textarea
    newElem = document.createElement('TEXTAREA');
  newElem.rows = 3;
  newElem.cols = 42;
  newElem.name = "paragraf" + val;
  formObj.insertBefore(newElem, afsnit);
   
    // Adding layer containing formelement remove option
  newElem = document.createElement('DIV');
    newElem.name = "removeElem" + val;
    newElem.style.display="inline";
    formObj.insertBefore(newElem, afsnit);   
   
    // Write content to layer
    writeTextToLayer( removeText, newElem.name, formObj );
}     

function writeTextToLayer( txt, elemName, form ){
  var divObj = getFormObject( elemName );
    if( divObj != null ) {
        divObj.innerHTML = txt;
    } else {
      alert( "hmm....feil :-(" );
    }
}

function getFormObject( elemName ){
  for( i=0;i<document.all.length;i++){
      if( document.all[i].name == elemName ){
          return document.all[i];
        }
    }
    return null;
}

function removeArea( elemVal ){
  var obj;
    obj = getFormObject( "formatElem" + elemVal );
    obj.parentNode.removeChild(obj);
    obj = getFormObject( "paragraf" + elemVal );
    obj.parentNode.removeChild(obj);
    obj = getFormObject( "removeElem" + elemVal );
    obj.parentNode.removeChild(obj);
}
// -->
</script>

</head>
<body onload="document.getElementById('afsnitcount').value = 0;">
<form name="afsnitForm" action="test3.asp" method="post">
<a href="java script:addarea('afsnit', document.afsnitForm)">New Paragraf</a>
<p />
<div id="afsnit"></div>
<input type="submit" id="subBut" value="Submit Me" />
<input type="hidden" id="afsnitcount" value="0" />

</form>

</body>
</html>

/nute
Avatar billede torbenmelander Nybegynder
19. oktober 2002 - 17:15 #20
Hvordan laver man en Select-boks med Elements ?
Er det her den rigtige måde at gøre det på ?

      var oOption = document.createElement("option");
      oOption.text="Felt1";
      oOption.value="Felt1";
      newElem.add(oOption);
      var oOption = document.createElement("option");
      oOption.text="Felt2";
      oOption.value="Felt2";
      newElem.add(oOption);
 
      formObj.insertBefore(newElem, afsnit);
Avatar billede nute Nybegynder
20. oktober 2002 - 15:18 #21
kan denne hjælpe ?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title></title>

<style>
    body{font: 13px verdana,sans-serif;}
    a:link{text-decoration:none;font-weight:bold;}
    a:visited{text-decoration:none;font-weight:bold;}
    a:active{text-decoration:none;font-weight:bold;}
    a:hover{text-decoration:none;font-weight:bold;}
</style>

<script language="JavaScript" type="text/javascript">
<!--
var val = 0;

function addarea(element, formObj ){
    var newElem, formatText, removeText, objAfsnit;

    val = document.getElementById('afsnitcount').value++;
    objAfsnit = document.getElementById("afsnit");
   
    var arrNames = ["frmName","frmDescription","frmType"];
    var arrType = ["input","select","input"];
    //
    objDiv = document.createElement('div');
    objDiv.name = "div" + val;
    objDiv.style.display="inline";
    formObj.insertBefore(objDiv, objAfsnit );
   
    for( var i = 1; i <= 3; i++ )
    {
       
        objSpan = document.createElement('span');
        objSpan.name = "span" + val + "_" + i;
        objSpan.style.display="inline";
        objDiv.insertAdjacentElement("BeforeEnd", objSpan);
       
        writeTextToLayer("<br>Div" + i , objSpan.name, formObj);
       
        objInput = document.createElement( arrType[i-1]);
        objInput.name = arrNames[i - 1] + val + "_" + i;
        if( arrType[i-1] == "select" )
        {
            objInput = addOptions( objInput );
        }
        else
        {
            objInput.type="text";
        }
        objDiv.insertAdjacentElement("BeforeEnd", objInput);
    }
   
    objSpan = document.createElement('span');
    objSpan.name = "removeDiv" + val;
    objSpan.style.display="block";
   
    objInput = document.createElement('button');
    objInput.name = "removeButton_" + val;
    objInput.value = "Slet";
    objInput.onclick = removeArea;
    objInput.style.display="inline";
   
    objSpan.insertAdjacentElement("BeforeEnd", objInput);
    objDiv.insertAdjacentElement("BeforeEnd", objSpan);
}     

function addOptions( objSelect )
{
    var objOption = new Option("Text", "Value");
    objSelect.add( objOption );
    objOption = new Option("Text 2", "Value 2");
    objSelect.add( objOption );
    objOption = new Option("Text 3", "Value 3");
    objSelect.add( objOption );
    return objSelect;
}
function writeTextToLayer(txt, elemName, form){
    var divObj = getFormObject(elemName);
    if(divObj != null){
        divObj.innerHTML = txt;
    }else{
        alert( "hmm....feil :-(" );
    }
}

function getFormObject(elemName){
    for(i=0;i<document.all.length;i++){
        if(document.all[i].name == elemName){
            return document.all[i];
        }
    }
    return null;
}

function removeArea(){
    var obj;
    var buttonName = event.srcElement.name;
    buttonName = buttonName.substr( buttonName.indexOf("_") + 1 );
    obj = getFormObject( "div" + buttonName );
    obj.parentNode.removeChild(obj);
    document.getElementById('afsnitcount').value--;
}
// -->
</script>

</head>
<body onLoad="document.getElementById('afsnitcount').value = 0;">

<form name="afsnitForm" action="index.asp" method="get">
<a href="java script:addarea('afsnit', document.afsnitForm)">Tilføj felt</a>
<p>&nbsp;
<div id="afsnit"></div>
<input type="submit" id="subBut" value="Opret">
<input type="hidden" id="afsnitcount" value="0">
</form>

</body>
</html>
Avatar billede torbenmelander Nybegynder
20. oktober 2002 - 15:20 #22
Ja, det er kanont ... du får lige lidt point oven i hatten :)
1000 tak for hjælpen ... Du er lidt for sej til det her ...
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