Avatar billede mlyager Nybegynder
30. maj 2002 - 17:20 Der er 26 kommentarer og
1 løsning

nogen der kan gennemskue dette??

Jeg har brug for navnene på de "nye" rækker, som bliver oprettet vha. dette script.

Der må tilføjes en eller anden slags "tæller" på hver enkelt ny række ?!?!

<html>
<head>
    <title>Untitled</title>
    <script>
    function insertRow() {
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
        oRows.appendChild(oRow);
    }
    function deleteRow(obj) {
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
    function setValue(obj) {
        if (obj.parentElement.childNodes[0].checked==true)
            obj.parentElement.childNodes[1].value=1;
        else
            obj.parentElement.childNodes[1].value=0;   
    }
    </script>
</head>

<body>

<table cellspacing="0" cellpadding="0" border="0">
                                    <tr>
                                        <td width="100%">
                                            <!-- begin of Row-Template -->
                                            <table style="display:none">
                                                <tr id="oRowTemplate">
                                                    <td>
                                                        <input type="text" name="Fra" size="15" class="inputbox">
                                                    </td>
                                                    <td>
                                                        <input type="text" name="Til" size="15" class="inputbox">
                                                    </td>
                                                    <td><input type="text" name="Sats" value="" size="15" class="inputbox"></td>
                                                    <td><input type="button" name="Slet" value="Slet" class="button2" onclick="deleteRow(this);"/></td>
                                                </tr>
                                            </table>
                                            <!-- end of Row-Template -->

                                            <table cellspacing="0" cellpadding="2" border="0" width="100%">
                                                <tr>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Fra</td>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Til</td>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Sats</td>
                                                    <td align="left"><input type="button" name="Insert" value="Indsæt" class="button2" onclick="insertRow();"></input></td>
                                                </tr>
                                            </table>
                                            <!-- begin of visual rows -->
                                            <table cellspacing="0" cellpadding="1" border="0" width="100%">
                                                <tbody id="oRows">
                                                    &nbsp;                                                </tbody>
                                            </table>
                                            <!-- end of visual rows -->
                                        </td>
                                    </tr>
                                </table>


</body>
</html>
Avatar billede ras2000 Nybegynder
30. maj 2002 - 19:28 #1
De har ikke nogen navne. Men du kan give dem nogen! Eller du kan benytte dig af at der sidst.
Avatar billede ras2000 Nybegynder
30. maj 2002 - 19:32 #2
Det her burde navngive dem.
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
        oRow.name = "ny" + a;
        oRows.appendChild(oRow);
    }
Så hedder de ny1, ny2, osv.
Avatar billede mlyager Nybegynder
30. maj 2002 - 19:38 #3
ras2000 >> Jeg kunne godt gå hen og tro, at du har fat i noget dér, men det virker ikke helt, når jeg sætter det ind i min kode.
Avatar billede ras2000 Nybegynder
30. maj 2002 - 19:40 #4
Hvis du laver din funktion sådan her, så kan du se at de får navnet:
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
        oRow.name = "ny" + a;
        oRows.appendChild(oRow);
    alert(oRows.innerHTML);
    }
Avatar billede mlyager Nybegynder
30. maj 2002 - 19:41 #5
Felterne kommer sikkert til at hedde ny1, ny2 etc, men når jeg submitter min form, kommer det over som:

FIELDNAMES=FRA,TIL,SATS,FRA,TIL,SATS
Avatar billede ras2000 Nybegynder
30. maj 2002 - 19:47 #6
Nåh, det er fordi det er rækkerne vi navngiver, ikke felterne. Den er vist lidt mere bøvlet, men mon ikke noget children[0].name kan klare det?
Avatar billede mlyager Nybegynder
30. maj 2002 - 19:52 #7
øhhh .... måske ...??
Avatar billede ras2000 Nybegynder
30. maj 2002 - 19:54 #8
Øjeblik.
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:04 #9
Hm, mystifistisk. Jeg kan ikke ændre navnene af en eller anden årsag. Her er koden jeg prøver at få til at virke:
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
        if (oRow.all[i].tagName == "INPUT"){
            oRow.all[i].name += a;
            alert(oRow.all[i].name);
        }
    }
        oRows.appendChild(oRow);
    alert(oRows.innerHTML);
    }
Den påstår at navnene er som de skal være når den løber igennem, men det fremgår ikke af koden.
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:07 #10
...men det virker når den submittes! Hurra. Du skal lige ændre en linie i fjern funktionen også:
    <script>
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
        if (oRow.all[i].tagName == "INPUT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }
    function deleteRow(obj) {
    a--;
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:08 #11
Eller det kan godt være at du ikke skulle have den linie med i fjern funktionen, der kan vist godt opstå dubletter så.
Avatar billede mlyager Nybegynder
30. maj 2002 - 20:11 #12
Spørgsmålet er så, om jeg dynamisk kan tilgå de enkelte felter via javascript ... (altså sætte value'en dynamisk)
Avatar billede mlyager Nybegynder
30. maj 2002 - 20:14 #13
f.eks. hvis jeg har en select-box, som skal bestemme værdien for "til" og "sats" ...
Avatar billede mlyager Nybegynder
30. maj 2002 - 20:14 #14
selectbox istedet for input som "fra"-felt ...
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:18 #15
Jeg prøver lige!
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:33 #16
Denne uskønne kode virker:
function fyld(){
    for (i = 0; i < document.formen.all.length; i++){
        if (document.formen.all[i].tagName == "INPUT" && document.formen.all[i].name == "Fra2")document.formen.all[i].value = 245;
    }
}
Hvis jeg kører alle inputteren igennem, og alerter navnet, så står der pænt alle de nye navne der blevet givet. Men hvis jeg så skriver document.formen.Fra1.value = "noget", så påstår den at der ikke er et felt der hedder sådan. Irriterende. Men hvis det var, skulle du så ind i en bestemt række? Det er da ikke særlig dynamisk. Kan du ikke bevæge dig op og ned via noderne? Det ville da være bedre. document.formen.Fra1 kunne jo være slettet.
Jeg har lagt din tabel ind i en form, og kaldt den formen, hvis du er forvirret over document.formen.
Avatar billede mlyager Nybegynder
30. maj 2002 - 20:39 #17
Select-felterne skal jo sættes ind i hver linie ... jeg poster lige noget kode ...

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

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

    <script>
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
        if (oRow.all[i].tagName == "INPUT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }

//    function insertRow() {
//        var oRow = oRowTemplate.cloneNode(true);
//        oRow.id = "oRow";
//        oRows.appendChild(oRow);
//    }
    function deleteRow(obj) {
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
    function setValue(obj) {
        if (obj.parentElement.childNodes[0].checked==true)
            obj.parentElement.childNodes[1].value=1;
        else
            obj.parentElement.childNodes[1].value=0;   
    }
   
    </script>
</head>

<body>
<form name="test" action="submit.cfm" method="post">
<table cellspacing="0" cellpadding="0" border="0">
                                    <tr>
                                        <td width="100%">
                                            <!-- begin of Row-Template -->
                                            <table style="display:none">
                                                <tr id="oRowTemplate">
                                                    <td>
                                                        <select name="fra" onChange="java script:NyValue();">
                                                          <option value="1">1</option>
                                                          <option value="2">2</option>
                                                          <option value="3">3</option>
                                                        </select>
                                                    </td>
                                                    <td>
                                                        <input type="text" name="Til" size="15" class="inputbox">
                                                    </td>
                                                    <td><input type="text" name="Sats" value="" size="15" class="inputbox"></td>
                                                    <td><input type="button" name="Slet" value="Slet" class="button2" onclick="deleteRow(this);"/></td>
                                                </tr>
                                            </table>
                                            <!-- end of Row-Template -->

                                            <table cellspacing="0" cellpadding="2" border="0" width="100%">
                                                <tr>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Fra</td>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Til</td>
                                                    <td width="89" class="txt" bgcolor="#cccccc">Sats</td>
                                                    <td align="left"><input type="button" name="Insert" value="Indsæt" class="button2" onclick="insertRow();"></input></td>
                                                </tr>
                                            </table>
                                            <!-- begin of visual rows -->
                                            <table cellspacing="0" cellpadding="1" border="0" width="100%">
                                                <tbody id="oRows">
                                                    <xsl:apply-templates select="/NetKatalog/Interval"/>
                                                </tbody>
                                            </table>
                                            <!-- end of visual rows -->
                                        </td>
                                    </tr>
                                </table>

<input type="submit">
</form>
</body>
</html>
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:48 #18
Jamen så poster jeg da også noget kode!
<html>
<head>
    <title>Untitled</title>
    <script>
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
    }
        oRows.appendChild(oRow);
    }
    function deleteRow(obj) {
    a--;
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
    function setValue(obj) {
        if (obj.parentElement.childNodes[0].checked==true)
            obj.parentElement.childNodes[1].value=1;
        else
            obj.parentElement.childNodes[1].value=0;   
    }
function doit(el){
    for(i = 0; i < el.parentElement.parentElement.all.length; i++){
        if (el.parentElement.parentElement.all[i].tagName == "INPUT" && el.parentElement.parentElement.all[i].name == "Til"){
            el.parentElement.parentElement.all[i].value = el.value;
        }
    }
}
    </script>
</head>

<body>
<table cellspacing="0" cellpadding="0" border="0">
  <tr>
      <td width="100%">
          <!-- begin of Row-Template -->
          <table style="display:none">
              <tr id="oRowTemplate">
                  <td><select name="Fra" class="inputbox" onChange="doit(this)"><option value="1">1</option><option value="2">2</option><option value="3">3</option></td>
                  <td><input type="text" name="Til" size="15" class="inputbox"></td>
                  <td><input type="text" name="Sats" value="" size="15" class="inputbox"></td>
                  <td><input type="button" name="Slet" value="Slet" class="button2" onclick="deleteRow(this);"/></td>
              </tr>
          </table>
          <!-- end of Row-Template -->
<form name="formen">

          <table cellspacing="0" cellpadding="2" border="0" width="100%">
              <tr>
                  <td width="89" class="txt" bgcolor="#cccccc">Fra</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Til</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Sats</td>
                  <td align="left"><input type="button" name="Insert" value="Indsæt" class="button2" onclick="insertRow();"></input></td>
              </tr>
          </table>
          <!-- begin of visual rows -->
          <table cellspacing="0" cellpadding="1" border="0" width="100%">
              <tbody id="oRows"></tbody>
          </table>
          <!-- end of visual rows -->
      </td>
  </tr>
                                </table>
<input type="submit">
</form>

</body>
</html>
Min ændrer i den samme linie, men ikke i de andre.
Avatar billede ras2000 Nybegynder
30. maj 2002 - 20:54 #19
Og nu virker den med de nye navne, dem var jeg kommet til at slette før:
<html>
<head>
    <title>Untitled</title>
    <script>
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
          if (oRow.all[i].tagName == "INPUT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }
    function deleteRow(obj) {
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
    function setValue(obj) {
        if (obj.parentElement.childNodes[0].checked==true)
            obj.parentElement.childNodes[1].value=1;
        else
            obj.parentElement.childNodes[1].value=0;   
    }
function doit(el){
    for(i = 0; i < el.parentElement.parentElement.all.length; i++){
        if (el.parentElement.parentElement.all[i].tagName == "INPUT" && el.parentElement.parentElement.all[i].name.slice(0,3) == "Til"){
            el.parentElement.parentElement.all[i].value = el.value;
        }
        if (el.parentElement.parentElement.all[i].tagName == "INPUT" && el.parentElement.parentElement.all[i].name.slice(0,4) == "Sats"){
            el.parentElement.parentElement.all[i].value = 1*el.value + 25;
        }
    }
}
    </script>
</head>

<body>
<table cellspacing="0" cellpadding="0" border="0">
  <tr>
      <td width="100%">
          <!-- begin of Row-Template -->
          <table style="display:none">
              <tr id="oRowTemplate">
                  <td><select name="Fra" class="inputbox" onChange="doit(this)"><option value="1">1</option><option value="2">2</option><option value="3">3</option></td>
                  <td><input type="text" name="Til" size="15" class="inputbox"></td>
                  <td><input type="text" name="Sats" value="" size="15" class="inputbox"></td>
                  <td><input type="button" name="Slet" value="Slet" class="button2" onclick="deleteRow(this);"/></td>
              </tr>
          </table>
          <!-- end of Row-Template -->
<form name="formen">

          <table cellspacing="0" cellpadding="2" border="0" width="100%">
              <tr>
                  <td width="89" class="txt" bgcolor="#cccccc">Fra</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Til</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Sats</td>
                  <td align="left"><input type="button" name="Insert" value="Indsæt" class="button2" onclick="insertRow();"></input></td>
              </tr>
          </table>
          <!-- begin of visual rows -->
          <table cellspacing="0" cellpadding="1" border="0" width="100%">
              <tbody id="oRows"></tbody>
          </table>
          <!-- end of visual rows -->
      </td>
  </tr>
                                </table>
<input type="submit">
</form>

</body>
</html>
Avatar billede mlyager Nybegynder
30. maj 2002 - 21:04 #20
prøver lige :)
Avatar billede ras2000 Nybegynder
30. maj 2002 - 21:06 #21
Her er en lidt pænere en.
<html>
<head>
    <title>Untitled</title>
    <script>
    var a = 0;
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
          if (oRow.all[i].tagName == "INPUT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }
    function deleteRow(obj) {
        var oRow = obj.parentElement.parentElement;
        oRow.parentElement.removeChild(oRow);
    }
function doit(el){
    obj = el.parentElement.parentElement.all;
    for(i = 0; i < obj.length; i++){
        if (obj[i].tagName == "INPUT" && obj[i].name.slice(0,3) == "Til"){
            obj[i].value = 34 * el.value;
        }
        if (obj[i].tagName == "INPUT" && obj[i].name.slice(0,4) == "Sats"){
            obj[i].value = 1*el.value + 25;
        }
    }
}
    </script>
</head>

<body>
<form name="formen">
<table cellspacing="0" cellpadding="0" border="0">
  <tr>
      <td width="100%">
          <!-- begin of Row-Template -->
          <table style="display:none">
              <tr id="oRowTemplate">
                  <td><select name="Fra" class="inputbox" onChange="doit(this)"><option value="1">1</option><option value="2">2</option><option value="3">3</option></td>
                  <td><input type="text" name="Til" size="15" class="inputbox"></td>
                  <td><input type="text" name="Sats" value="" size="15" class="inputbox"></td>
                  <td><input type="button" name="Slet" value="Slet" class="button2" onclick="deleteRow(this);"/></td>
              </tr>
          </table>
          <!-- end of Row-Template -->

          <table cellspacing="0" cellpadding="2" border="0" width="100%">
              <tr>
                  <td width="89" class="txt" bgcolor="#cccccc">Fra</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Til</td>
                  <td width="89" class="txt" bgcolor="#cccccc">Sats</td>
                  <td align="left"><input type="button" name="Insert" value="Indsæt" class="button2" onclick="insertRow();"></input></td>
              </tr>
          </table>
          <!-- begin of visual rows -->
          <table cellspacing="0" cellpadding="1" border="0" width="100%">
              <tbody id="oRows"></tbody>
          </table>
          <!-- end of visual rows -->
      </td>
  </tr>
</table>
<input type="submit">
</form>

</body>
</html>
Jeg fjernede din setValue, og kortede parentELement'erne lidt ned.
Avatar billede mlyager Nybegynder
30. maj 2002 - 21:08 #22
ja jow såmænd ...

der er dog lige een lille ting ... hvis jeg må være så fræk ... he he ...

FRA skal også ud i Fra1, Fra2, Fra3 etc ...

Det gør den nemlig ikke nu ...
Avatar billede ras2000 Nybegynder
30. maj 2002 - 21:10 #23
function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
          if (oRow.all[i].tagName == "INPUT") oRow.all[i].name += a;
          if (oRow.all[i].tagName == "SELECT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }
Avatar billede ras2000 Nybegynder
30. maj 2002 - 21:10 #24
Eller:
    function insertRow() {
    a ++;
        var oRow = oRowTemplate.cloneNode(true);
        oRow.id = "oRow";
    for (i = 0; i < oRow.all.length; i++){
          if (oRow.all[i].tagName == "INPUT"||oRow.all[i].tagName == "SELECT") oRow.all[i].name += a;
    }
        oRows.appendChild(oRow);
    }
Avatar billede mlyager Nybegynder
30. maj 2002 - 21:13 #25
yeah ... that's the way I like it ... a ha a ha ...

Du har så sandelige fortjent point'ene ... og mere til ... Tusind tak for hjælpen.

Jeg håber også du lærte noget af det ... he he ... det skader jo aldrig ...

endnu engang TAK!
Avatar billede ras2000 Nybegynder
30. maj 2002 - 21:14 #26
Jeg smutter nu, men jeg kan ikke se der skulle være flere ting i det. Ellers må du have tålmodighed til i morgen.
Avatar billede mlyager Nybegynder
30. maj 2002 - 21:18 #27
Der er ikke mere ... men tak for det du!
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