Avatar billede ste Nybegynder
08. juli 2004 - 08:17 Der er 11 kommentarer og
1 løsning

Hjælp til at konveretere ASP script til Javascript

Jeg har følgende ASP løkke som jeg gerne vil have ændret til et javascript. Lige pt angiver man antal pinde i en formular og submitter, så komme en ny side med et antal text boxe der er = med antallet. Jeg har prøvet men har ikke hurtigt nok kunnet omdanne koden til javascript, så nur spørger jeg her. Jeg ønsker at angive tallet i feltet og når feltet forlades skal textboxene tilføjes straks. Hvordan gøres det. ASP koden kommer her.
<%
      Dim lt

For lt = 1 to ""&request.form("antalpinde")&"" step 1

   
    Response.Write "<tr>"
    Response.Write "<td width='4%' valign='top'>"
    Response.write "<input type='text' maxlength='2' size='2' name='Prioritet"&lt&"' value='"&lt&"' readonly='true' style='font-size: 8 pt; font-family: Tahoma'></td>"
    Response.write "<td width='96%'>"
    Response.write "<textarea rows='4' cols='80' name='PolUdsagn"&lt&"' style='font-size: 8 pt; font-family: Tahoma'></textarea></td>"
    'Response.write "<input type='text' minlength='1' maxlength='150' size='100' name='PolUdsagn"&lt&"'></td>"
    Response.write "</tr>"
   
    Next
%>
Avatar billede roenving Novice
09. juli 2004 - 12:34 #1
-- du skal tilføje så mange options og rækker, du har brug for !-)

-- og der skal selvfølgelig være overenstemmelse i antallet ...

<select name="minSelect" id="minSelect" onchange="for(i=1;this.length>i;i++)document.getElementById('tr'+i).style.display=(+this.value>=i)?'block':'none';">
    <option value="0">-- Vælg antal pinde --<br>
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
</select>
<br>
<table>
  <tr id="tr1" style="display:none;">
    <td width='4%' valign='top'>
      <input type='text' maxlength='2' size='2' name='Prioritet1' value='1' readonly='true' style='font-size: 8 px; font-family: Tahoma'></td>
    <td width='96%'>
      <textarea rows='4' cols='80' name='PolUdsagn1' style='font-size: 8 px; font-family: Tahoma'></textarea></td>
  </tr>
  <tr id="tr2" style="display:none;">
    <td width='4%' valign='top'>
      <input type='text' maxlength='2' size='2' name='Prioritet2' value='2' readonly='true' style='font-size: 8 px; font-family: Tahoma'></td>
    <td width='96%'>
      <textarea rows='4' cols='80' name='PolUdsagn2' style='font-size: 8 px; font-family: Tahoma'></textarea></td>
  </tr>
  <tr id="tr3" style="display:none;">
    <td width='4%' valign='top'>
      <input type='text' maxlength='2' size='2' name='Prioritet3' value='3' readonly='true' style='font-size: 8 px; font-family: Tahoma'></td>
    <td width='96%'>
      <textarea rows='4' cols='80' name='PolUdsagn3' style='font-size: 8 px; font-family: Tahoma'></textarea></td>
  </tr>
</table>
Avatar billede ste Nybegynder
13. juli 2004 - 07:35 #2
Hej roenving.
Det virker og kan i princippet bruges som det er, men....Kan der ikke laves en løkke der tager udgangspunkt i et frit indtastet tal og som så efterølgende køre løkken igennem ligesom i mit asp forslag.
Avatar billede ste Nybegynder
13. juli 2004 - 07:42 #3
Jeg har også brug for at kunne validere text-area felterne så i princippet skal den også sende værdien til den løkke. Den har jeg lavet på følgende måde.
<%
If Request("antalpinde")= 1 Then

Response.write "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>"
response.write "function validate(form1) {"
response.write "if (form1.PolUdsagn1.value == '') {"
response.write "alert('Husk at udfylde tekstfelt 1!');"
response.write "document.form1.PolUdsagn1.focus();"
response.write "return false;"
response.write "}"
response.write "}"
response.write "</SCRIPT>"

Else

Response.write "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>"
response.write "function validate(form1) {"
response.write "if (form1.PolUdsagn1.value == '') {"
response.write "alert('Husk at udfylde tekstfelt til pind nr 1!');"
response.write "document.form1.PolUdsagn1.focus();"
response.write "return false;"
response.write "}"


Dim tlt

    For tlt = 2 to ""&request.form("antalpinde")&"" step 1
   
    Response.write "else {"
    Response.write "if (form1.PolUdsagn"&tlt&".value == '') {"
    Response.write "alert('Husk at udfylde tekstfelt til pind nr."&tlt&"');"
    Response.write "document.form1.PolUdsagn"&tlt&".focus();"
    Response.write "return false;"
    Response.write "}"
   
   
    Next

Dim slt

    For slt = 1 to ""&request.form("antalpinde")&"" step 1
   
    Response.write "}"


    Next



response.write "</SCRIPT>"
Avatar billede roenving Novice
13. juli 2004 - 13:33 #4
Her er den lavet med select-boksen, hvis du vil have den med et frit felt, er grundlaget jo lagt !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Vælg antal pinde og valider</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/517875">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
function validate(f){
  e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].name.indexOf("PolUdsagn")==0&&e[i].value==""){
      alert("Husk at udfylde tekstfelt til pind nr. " + e[i].name.replace(/PolUdsagn(\d+)/,"$1"));
      e[i].focus();
      return false;
    }
  }
  alert("Succes");
  return false;
}

function visPinde(elm){
  if(elm.selectedIndex>0){
    var tb = document.getElementById('minTabel');
    while(tb.childNodes.length>1){tb.removeChild(tb.childNodes[1]);}
    for(i=0;elm.value>i;i++){
      var tr = document.createElement('TR');
      tb.appendChild(tr);
      tr.id = "minTr" + (i+1);
      var td1 = document.createElement('TD');
      tr.appendChild(td1);
      td1.width = "4%";
      td1.style.verticalAlign = "top";
      var inp = document.createElement('INPUT');
      td1.appendChild(inp);
      inp.type = "text";
      inp.maxlength = "2";
      inp.size = "2";
      inp.name = "Prioritet" + (i+1);
      inp.value = (i+1);
      inp.readOnly = "true";
      inp.style.fontSize = "8px";
      inp.style.fontFamily = "tahoma,sans-serif";
      var td2 = document.createElement('TD');
      tr.appendChild(td2);
      td2.width = "96%";
      var txt = document.createElement('TEXTAREA');
      td2.appendChild(txt);
      txt.rows = "4";
      txt.cols = "80";
      txt.name = "PolUdsagn" + (i+1);
      txt.style.fontSize = "8px";
      txt.style.fontFamily = "tahoma,sans-serif";
    }
  }
}
</script>
</head>
<body onresize onload>
<form id="minForm" name="minForm" onsubmit="return validate(this);">
<select name="minSelect" onchange="visPinde(this);">
  <option>-- Vælg antal pinde --</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>


<table style="font-size:10px;font-family:tahoma,sans-serif"><tbody id="minTabel">
<tr><td>Prioritet</td><td>Tekst</td></tr>
<tr><td>Vælg antal pinde i select-boksen !</td><td></td></tr>
</tbody></table>
<input type="submit">
</form>

</body>

</html>
Avatar billede ste Nybegynder
15. juli 2004 - 07:59 #5
Hej Roenving.
Hvis jeg skifter select boksen ud med en input="text" og bruger onblur i stedet sker der ikke noget. Hvad skal jeg bruge for at få dit script til at virke.
Avatar billede roenving Novice
15. juli 2004 - 12:27 #6
På et text-felt skal du også bruge onchange !-)

Men så skal koden ændres lidt ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Vælg antal pinde og valider</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/517875">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
function validate(f){
  e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].name.indexOf("PolUdsagn")==0&&e[i].value==""){
      alert("Husk at udfylde tekstfelt til pind nr. " + e[i].name.replace(/PolUdsagn(\d+)/,"$1"));
      e[i].focus();
      return false;
    }
  }
  alert("Succes");
  return false;
}

function visPinde(elm){
    var tb = document.getElementById('minTabel');
    while(tb.childNodes.length>1){tb.removeChild(tb.childNodes[1]);}
    for(i=0;+elm.value>i;i++){
      var tr = document.createElement('TR');
      tb.appendChild(tr);
      tr.id = "minTr" + (i+1);
      var td1 = document.createElement('TD');
      tr.appendChild(td1);
      td1.width = "4%";
      td1.style.verticalAlign = "top";
      var inp = document.createElement('INPUT');
      td1.appendChild(inp);
      inp.type = "text";
      inp.maxlength = "2";
      inp.size = "2";
      inp.name = "Prioritet" + (i+1);
      inp.value = (i+1);
      inp.readOnly = "true";
      inp.style.fontSize = "8px";
      inp.style.fontFamily = "tahoma,sans-serif";
      var td2 = document.createElement('TD');
      tr.appendChild(td2);
      td2.width = "96%";
      var txt = document.createElement('TEXTAREA');
      td2.appendChild(txt);
      txt.rows = "4";
      txt.cols = "80";
      txt.name = "PolUdsagn" + (i+1);
      txt.style.fontSize = "8px";
      txt.style.fontFamily = "tahoma,sans-serif";
    }
}
</script>
</head>
<body onresize onload>
<form id="minForm" name="minForm" onsubmit="return validate(this);">
<input name="minInput" onchange="visPinde(this);">

<table style="font-size:10px;font-family:tahoma,sans-serif"><tbody id="minTabel">
<tr><td>Prioritet</td><td>Tekst</td></tr>
<tr><td>Vælg antal pinde i select-boksen !</td><td></td></tr>
</tbody></table>
<input type="submit">
</form>

</body>

</html>
Avatar billede ste Nybegynder
30. juli 2004 - 12:33 #7
Tak for hjælpen roenving. Jeg kunne ikke gøre brug af løsningen til det stillede spørgsmål, men jeg vil alligevel gerne belønne dig med pointene da jeg allerede har brugt dit forslag i en kommende formular. Hvis du lige smider et svar så vil jeg kvittere.
Avatar billede roenving Novice
30. juli 2004 - 12:48 #8
Oki '-)
Avatar billede ste Nybegynder
30. juli 2004 - 12:49 #9
Værsgo, og endnu engang tak for hjælpen.
Avatar billede roenving Novice
30. juli 2004 - 13:12 #10
Husk at skal du uddele point, skal du markere et brugernavn i boksen til venstre !-)
Avatar billede ste Nybegynder
30. juli 2004 - 22:35 #11
Undskyld. Det var vist en smutter.
Avatar billede roenving Novice
31. juli 2004 - 02:19 #12
-- tak for point ,-)
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