Avatar billede stkol Nybegynder
25. november 2004 - 21:38 Der er 13 kommentarer og
1 løsning

Javascript virker ikke efter insættelse af form tag

Hejsa

Jeg oplever et underligt problem, efter at have indsat <form> tag omkring et JavaScript, virker scriptet pludseligt ikke!

Er der nogen der kan hjælpe mig med dette??

Koden ser sådanne ud :

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

<html>
<head>
    <title>Untitled</title>
   
    <link rel="STYLESHEET" type="text/css" href="../../../frame/holmbergcss.css">

   
   


   
<style>
    #sub1, #sub2, #sub3, #sub4, #sub5, #sub6, #sub7, #sub8, #sub9, #sub10, #sub11, #sub12, #sub13, #sub14, #sub15, #sub16, #sub17, #sub18, #sub19, #sub20, #sub21, #sub22, #sub23, #sub24, #sub25, #sub26, #sub27, #sub28, #sub29, #sub30, #sub31, #sub32, #sub33, #sub34, #sub35, #sub36, #sub37, #sub38, #sub39, #sub40, #sub41, #sub42, #sub43, #sub44, #sub45, #sub46, #sub47, #sub48, #sub49, #sub50
    { position: absolute;
      left: 315px;
      visibility: hidden;
      z-index: 4
    }
</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
catnumber = 4
offset = 150
performOnchange = false
if (document.all) {
  docObj = "document.all."
  styleObj = ".style"
  } else {
  docObj = "document."
  styleObj = ""
}
function openselect(subcat) {
  popupselect = eval(docObj + subcat + styleObj)
  popupselect.visibility = "visible"
}
function closeselect(submenu,subcat){
  popupselect = eval(docObj + subcat + styleObj)
  if (submenu.selectedIndex != 0) {
    popupselect.visibility = "hidden"
    numchoice = submenu.selectedIndex
    choice = submenu[numchoice].value
    subcategory.value = choice
    submenu.selectedIndex = 0
  }
}
function lock() {
  performOnchange = false
}
function unlock() {
  performOnchange = true
}
function selectSub(cat) {
  for (i=1; i <= catnumber; i++) {
    subcat = "sub" + i
    popupselect = eval(docObj + subcat + styleObj)
    popupselect.visibility = "hidden"
  }
  if (performOnchange == true) {
    letsopen = "sub" + cat.selectedIndex
    if (letsopen == "sub0") {
      alert("No category selected")
      choice = "- subcategory -"
      subcategory.value = choice
      cat.focus()
      } else {
      openselect(letsopen)
      lock()
    }
  }
}
//  End -->
</script>



</head>

<body>

<p align="right">
<font size="5" face="Verdana"><b><i>Opret Produkt.. &nbsp;</i></b></font>
</p>

<center>

<table width="390" cellspacing="1" cellpadding="1" border="0">
<tr>
    <td align="left" valign="top"><font size="1" face="Verdana">Nedenfor har du mulighed for at oprette et produkt til shoppen!</font>
                                                                </td>
</tr>
</table>

<br>
<br>

<form name="insertprodform" action="insertproduct.asp" method="POST"">

<table width="320" cellspacing="1" cellpadding="4" border="0">
<tr>
    <td width="320">
        <font size="2"><b>Valg af kategorier</b></font>
    </td>
</tr>
</table>

<table width="320" cellspacing="1" cellpadding="4" border="1" bordercolor="336699" bgcolor="#E9E9E9">
<tr>
    <td width="320">



                            <div align="left">
                            <font size="1">Kategori:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font> <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)" class="inputbox" style="width: 205px">
                                <option selected value="">Vælg Kategori..</option>
                           
                                <option value="1">Subcat2</option>
                           
                                <option value="4">Sub test1</option>
                           
                                <option value="6">Stig</option>
                           
                                <option value="7">Frederik</option>
                               
                              </select>
                              <br>
                             
                                <span id="sub1">
                                  <select name="subSubcat2" onchange="closeselect(this,'sub1')" class="inputbox" style="width: 205px">
                                    <option selected value="">Vælg underkategori..</option>
                               
                                    <option value="frederik" class="inputbox" style="width: 95%">frederik</option>
                               
                                    <option value="Stig" class="inputbox" style="width: 95%">Stig</option>
                               
                                  </select>
                                </span>
                               
                                <span id="sub2">
                                  <select name="subSub test1" onchange="closeselect(this,'sub2')" class="inputbox" style="width: 205px">
                                    <option selected value="">Vælg underkategori..</option>
                               
                                    <option value="test" class="inputbox" style="width: 95%">test</option>
                               
                                  </select>
                                </span>
                               
                                <span id="sub3">
                                  <select name="subStig" onchange="closeselect(this,'sub3')" class="inputbox" style="width: 205px">
                                    <option selected value="">Vælg underkategori..</option>
                               
                                    <option value="test" class="inputbox" style="width: 95%">test</option>
                               
                                  </select>
                                </span>
                               
                                <span id="sub4">
                                  <select name="subFrederik" onchange="closeselect(this,'sub4')" class="inputbox" style="width: 205px">
                                    <option selected value="">Vælg underkategori..</option>
                               
                                    <option value="test" class="inputbox" style="width: 95%">test</option>
                               
                                  </select>
                                </span>
                               
                                <br>
                                <font size="1">Under Kategori:</font> <input type="text" name="subcategory" readonly="readonly" value="" class="inputbox" style="width: 205px">
                                </div>
                               
    </td>
</tr>
</table>

<br>
<br>
<table width="320" cellspacing="1" cellpadding="4" border="0">
<tr>
    <td width="320">
        <font size="2"><b>Indsæt Produkt Oplysninger</b></font>
    </td>
</tr>
</table>

<table width="320" cellspacing="1" cellpadding="4" border="1" bordercolor="336699" bgcolor="#E9E9E9">
<tr>
    <td width="300">
   
            <table width="300" cellspacing="2" cellpadding="2" border="0">
            <tr>
                <td width="120"><font size="1"><b>Vare Nr. :</b></font></td>
                <td width="180"><input type="text" name="varenr" id="varenr" class="inputbox" style="width: 205px" value=""></td>
            </tr>   
            <tr>
                <td width="120"><font size="1"><b>Overskrift :</b></font></td>
                <td width="180"><input type="text" name="prodheadline" id="prodheadline" class="inputbox" style="width: 205px" value=""></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Materiale :</b></font></td>
                <td width="180"><input type="text" name="material" id="material" class="inputbox" style="width: 205px" value=""></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Bruges til :</b></font></td>
                <td width="180"><input type="text" name="usedfor" id="usedfor" class="inputbox" style="width: 205px" value=""></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Andet :</b></font></td>
                <td width="180"><input type="text" name="other" id="other" class="inputbox" style="width: 205px" value=""></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Leverings tid :</b></font></td>
                <td width="180"><select name="lessthen" id="lessthen" class="inputbox" style="width: 35px">
                                    <option value="<" SELECTED><</option>
                                    <option value=""></option>
                                    <option value=">">></option>
                                </select>
                                <select name="delieverydays" id="delieverydays" class="inputbox" style="width: 45px">
                                    <option value="1" SELECTED>1</option>
                                    <option value="2">2</option>
                                    <option value="2-3">2-3</option>
                                    <option value="5">5</option>                                   
                                    <option value="5">7</option>                                   
                                    <option value="5">10</option>                                                                                                           
                                    <option value="5">14</option>                                                                       
                                </select>
                                <select name="delieveryweek" id="delieveryweek" class="inputbox" style="width: 85px">
                                    <option value="dag(e)" SELECTED>dag(e)</option>
                                    <option value="uge(r)">uge(r)</option>
                                    <option value="månede(r)">måned(er)</option>
                                </select>                               
                </td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Pris :</b></font></td>
                <td width="180"><input type="text" name="price" id="price" class="inputbox" style="width: 60px" value="" maxlenght="7"><font size="1"><b>,00 Kr</b></font></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Hjemmeside :</b></font></td>
                <td width="180"><input type="text" name="homepage" id="homepage" class="inputbox" style="width: 205px" value="http://"></td>
            </tr>
            <tr>
                <td width="120"><font size="1"><b>Billed :</b></font></td>
                <td width="180"><input type="text" name="image" id="image" class="inputbox" style="width: 205px" value=""></td>
            </tr>
            <tr>
                <td width="120" valign="top"><font size="1"><b>Beskrivelse :</b></font></td>
                <td width="180" valign="top"><textarea cols="" rows="" name="description" class="inputbox" style="width: 205px; height: 100px" id="description"></textarea></td>
            </tr>                                                                                                               
            </table>
   
    </td>
</tr>
</table>



<br>
<br>

</body>
</html>


Pft.

/stig :-)
Avatar billede olebole Juniormester
25. november 2004 - 21:46 #1
<ole>

Hvad skulle ske - hvad sker?
Hvorfor i øvrigt ikke bruge en CSS-klasse i stedet for at bruge ID-selectors i dit stylesheet?

/mvh
</bole>
Avatar billede olebole Juniormester
25. november 2004 - 21:47 #2
PS: og får du forresten nogen JavaScript-fejl - og i så fald, hvad siger den/de så?
Avatar billede skovenborg Nybegynder
25. november 2004 - 21:47 #3
Lige umiddelbart mangler du en parentes i:
<font size="1">Kategori:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font> <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)" class="inputbox" style="width: 205px">
Der hvor der står selectSub(this) manglede du den afsluttende parentes.

Har du forresten overvejet at bruge klasser i din CSS istedet for det hav af id'er du har:
<style>
    .sub
    { position: absolute;
      left: 315px;
      visibility: hidden;
      z-index: 4
    }
</style>
Kræver selvfølgelig at du skriver fx  <span id="sub4" class="sub"> men det bliver da lidt mere overskueligt nu.
Avatar billede stkol Nybegynder
25. november 2004 - 21:58 #4
Hej olebole

Den siger "Error: 'subcategori' is undefined" og det er i linie 45 hvor der står
  styleObj = ""
Avatar billede stkol Nybegynder
25. november 2004 - 22:00 #5
Hej skovenborg

Underligt nok så har jeg den parentes i min ASP kode, men den bliver åbentbart ikke skrevet ud. Linien ser sådanne ud i ASP :
                            <font size="1">Kategori:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font> <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)" class="inputbox" style="width: 205px">
Avatar billede skovenborg Nybegynder
25. november 2004 - 22:01 #6
Det er godt nok også en mærkelig kode du har:
if (document.all) {
  docObj = "document.all."
  styleObj = ".style"
  } else {
  docObj = "document."
  styleObj = ""
}
Når du senere skriver fx popupselect = eval(docObj + subcat + styleObj) kan det nok ikke lige betegnes som kompitabelt med andre browsere end lille IE ;-)

Selv vil jeg anbefale at lave en simpel lille funktion:
function getStyleObj(ID) {
    if (document.getElementById) {return document.getElementById(ID).style;}
    else if (document.all) {return document.all[ID].style;}
    else if (document.layers) {return document.layers[ID];}
    else {return null;}
}
og der hvor du skriver popupselect = eval(docObj + subcat + styleObj) erstatter du det med popupselect = getStyleObj(subcat);

Desuden mangler du flere parenteser og anførselstegn længere ned hvor du kalder closeselect. Fx:
onchange="closeselect(this,'sub4"
skal skrives
onchange="closeselect(this,'sub4')"
Avatar billede skovenborg Nybegynder
25. november 2004 - 22:04 #7
Forresten skriver du subcategory.value = choice to steder - men subcategory referer ikke til nogen variabel du har defineret i dit script. Vil du have fat i:
<input type="text" name="subcategory" readonly="readonly" value=" class="inputbox" style="width: 205px">
skal du skrive:
document.forms["insertprodform"].subcategory.value = choice
Avatar billede stkol Nybegynder
25. november 2004 - 22:08 #8
Alle de parenteser som mangler, er alle i ASP koden!! det er sgu da lidt underligt!!!
Avatar billede skovenborg Nybegynder
25. november 2004 - 22:13 #9
Det er ikke noget du kan rette? For ellers er temmelig svært at lave et script, som virker ;-)
Avatar billede stkol Nybegynder
25. november 2004 - 22:15 #10
Ja det har du ret i!!! Men jeg kan bare ikke se at jeg kan gøre det på andre måder end den jeg gør, når jeg skal have ASP data ind i koden! Det undrer mig meget at den fjerner det fra koden

Jeg har forøvrigt lige rette de ting som du påpegede :-)!!
Avatar billede stkol Nybegynder
25. november 2004 - 22:25 #11
Jeg overså lige din kommentar angående

document.forms["insertprodform"].subcategory.value = choice

KANONT nu virker det *SS Smid lige et svar så du kan få dine point :-) TUSIND tak *S
Avatar billede skovenborg Nybegynder
25. november 2004 - 22:38 #12
nåda, det må jeg sige. Fik du da rettet din ASP-kode?

Lige et par ting mere:
Du skal nok lige rette din doctype til noget korrekt - ellers hjælper den ikke meget (og IE vil ikke overholde standarden så godt som den nu kan).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Og så kommer du til at skrive et " for meget i dit <form>-element:
<form name="insertprodform" action="insertproduct.asp" method="POST">
før stod der method="POST"">. Det er en lille ting, og gør nok ikke den store forskel, men pænt er det ikke.
Avatar billede skovenborg Nybegynder
25. november 2004 - 22:38 #13
og så skal jeg da lige huske et svar ;-)
Avatar billede stkol Nybegynder
26. november 2004 - 12:28 #14
Tusind tak for din store hjælp *S
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