webForumDet fria alternativet

Onchange

11 svar · 408 visningar · startad av Asa

AsaMedlem sedan dec. 20011 934 inlägg
#1

Vid val av produkt i selectrutan vill jag att dess pris samt artnr skall lägga sig i de fälten som är för artnr och pris. Här är min kod. Har ett javascript som man kanske kan använda som ligger med i koden men vet ej hur jag skall skriva sen.

<%For i = 1 To 5%>
  <script>
  function SendTo_<%=i%>(artnr,pris) {
	    document.faktura.artnr_<%=i%>.value = artnr;
	    document.faktura.pris_<%=i%>.value = pris;
  }
  </script>
  <tr>
    <td width="20%" valign="top" align="right"><input type="text" name="artnr_<%=i%>" style="width:100%"></td>
    <td width="50%" valign="top">
      <select name="produkt_<%=i%>" style="width:100%">
        <option value="">» Välj produkt «
        <%Set RS=Conn.Execute("Select produkt,artnr,pris From shop_asp_produkter Order By produkt")
          Do Until RS.EOF%>
            <option value="<%=RS("produkt")%>"><%=RS("produkt")%><br>
          <%RS.MoveNext
          Loop
        RS.Close:Set RS=Nothing%>
      </select>
    </td>
    <td width="15%" valign="top" align="right"><input type="text" name="antal_<%=i%>" style="width:100%"></td>
    <td width="15%" valign="top" align="right"><input type="text" name="pris_<%=i%>" style="width:100%"></td>
  </tr>
<%Next%>
J.N.Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Om du kompletterar din listruta med ett OnChange-anrop till funktionen, borde väl document.faktura.artnr_<%=i%>.value sätta värdet i rätt ruta?

VB-Script är fint, men resulterande JavaScript vore finare här!

AsaMedlem sedan dec. 20011 934 inlägg
#3

Priset och artnr skall hämtas från databasen. Inne i loopen. Går det? Och isåfall hur skriver man?

onChange="javascript:SendTo_<%=i%>('<%=RS("artnr")%>,'<%=RS("pris")%>');"

Jesper TMedlem sedan nov. 20017 058 inlägg
#4

Måste säga att det är Aber att mixa client-side asp-kod och javascript-kod.

Klistra in javascriptkoden som sidan genererar i stället för en oförståelig gröt med spagettikod.

Javascriptprobs i detta forum, asp i aspforumet.

AsaMedlem sedan dec. 20011 934 inlägg
#5

Jag undrar bara om man på nåt sått kan lägga

onChange="javascript:SendTo_<%=i%>('<%=RS("artnr")%>,'<%=RS("pris")%>');"

i en option-tagg - för där måste den ligga...på nåt sätt.

@ndersMedlem sedan juni 200026 914 inlägg
#6

Nej, du kan inte lägga onchange på ett <option>-element. Lägg alla värden du behöver i value på din option, och dela på dem i funktionen.

AsaMedlem sedan dec. 20011 934 inlägg
#7

Hmm, hur då? Javascript är inte min starka sida. Hur skriver jag i det om jag lägger alla fält ifrån databasen som value i option ? OM jag ex separerar med ;

AsaMedlem sedan dec. 20011 934 inlägg
#8

Fick man nån hjälp eller?

@ndersMedlem sedan juni 200026 914 inlägg
#9

Om du har en sträng som ser ut så här: värde1;värde2;värde3, så kan du splitta den så här:

arrValues = strängvariabeln.split(";");
sValue1 = arrValues[0];
sValue2 = arrValues[1];
sValue3 = arrValues[2];

Då har du ju separata variabler för alla värden.

mvh

AsaMedlem sedan dec. 20011 934 inlägg
#10

Men hur skall jag skriva i min kod? Ovan? Med denna onchange i select-taggen:
onChange="javascript:SendTo_<%=i%>(xxxx);"

zcorpanMedlem sedan dec. 20042 269 inlägg
#11

("javascript:" borde inte vara med i event-attribut.)

@ndersMedlem sedan juni 200026 914 inlägg
#12

Asa skrev:

Men hur skall jag skriva i min kod? Ovan? Med denna onchange i select-taggen:
onChange="javascript:SendTo_<%=i%>(xxxx);"

Det är fel sätt att använda funktioner på om du har en funktion per 'post' (i). Skicka hela klabbet som en parameter.

function SendTo(params) {

//

}
<select onchange="SendTo(this.options[this.selectedIndex].value);">
<option value=""></option>
<option value="värde1;värde2;värde3">Post 1</select>
</select>
Genererad på 389 ms · cache AV · v20260730165559-full.f96bc7eb