Just nu i M3-nätverket
Gå till innehåll

fORMULÄR


Lindacharlotta

Rekommendera Poster

Lindacharlotta

Nopps... :-( Ville inte så eller...

 

Här kommer min javascript-sida:

 

 function Init() {
var sel1=document.form.countries
var sel2=document.form.cities
}
function updateSelect2() {
var sel1 = document.getElementById('countries');
var sel2 = document.getElementById('cities');

sel2.options.length=0; 
if (sel1.value=="varde1") {
sel2.options[0]=new Option("val5","val5");
sel2.options[1]=new Option("val4","val4");
}
if (sel1.value=="varde2") {
sel2.options[0]=new Option("namn1","namn1");
}
if (sel1.value=="varde3") {
sel2.options[0]=new Option("val1","val1");
sel2.options[1]=new Option("val2,"val2");
sel2.options[2]=new Option("val3","val3");
}
}
function lagg_till() {
var sel1 = document.getElementById('countries');
var sel2 = document.getElementById('cities');
var antal1 = document.getElementById('antal1');
var antal2 = document.getElementById('antal2');
var str = sel1.value+ "" + antal1.value+ ""+sel2.value+""+antal2.value+ "<br>";
document.getElementById('box').innerHTML += str+"<br>";
document.getElementsByName('valda_saker')[0] += str+"#";
}

 

några taggar i mitt formulär:

<form method="post" name="form" action="skicka.asp">

 

<input type=hidden name="valda_saker" value="">

<input type="button" value="lägg till" onClick="lagg_till()">

 

I min skicka.asp-sida:

mail.HTMLBody = "<b>" & Request.Form("valda_saker") & " </b>"

Har provat skriva ut valda_saker på formulärs-sidan men den skriver inte ut ngt. Felet måste väl då ligga i javascriptet...?

 

 

/ LInda

 

 

 

 

[inlägget ändrat 2008-01-31 14:53:44 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

  • Svars 66
  • Skapad
  • Senaste svar

Innerhåller str något efter att du byggt upp variabeln i lagg_till()?

alert(str);

 

Blir där inget utskivit på klientsidan är det javascript-delen som är fel.

 

Länk till kommentar
Dela på andra webbplatser

Hm, ganska viktigt att använda felkonsollen när man utvecklar. Där framgår tydligt vad som var fel:

 

Följande rad saknar ett " efter "val2

sel2.options[1]=new Option("val2,"val2");

 

ska vara

sel2.options[1]=new Option("val2","val2");

 

 

En kommentar: Det korrekta sättet att hämta värden ur select:s är inte med oSel.value utan med

oSel.options[oSel.selectedIndex].value;

Båda varianter fungerar, men den senare är att föredra då den ligger mer konsekvent i linje med metoden för att hämta vald text från en select.

[inlägget ändrat 2008-01-31 15:09:34 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Den skriver ut mina val på formulärsidan efter jag tryckt på knappen lägg till, men den skickar inte iväg det till min mail.

Mitt mail kommer tomt

 

En alert-ruta kommer upp med innehållet som jag valt....

[inlägget ändrat 2008-01-31 15:11:05 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

Det är för att även raden som lägger till värden i hiddenfältet är inkorrekt. Den ska se ut så här:

document.getElementsByName('valda_saker')[0].value += str+"#";

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Tackar, äntligen...

 

Nu fungerar det!! :-)

 

 

Finns det möjlighet att lägga in en knapp i javascritraden som skrivs ut på formuläret, så man kan ta bort en rad om man ångrar sig?

Skulle vara tacksam för lite vägledning hur jag ska gå till väga...

 

Tack för hjälpen...

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

För att lösa detta bör du lägga in valda värden i en listbox istället för en textarea som du gör nu, ennars blir det svårt att välja objekt som skall tas bort. Vidare bör du inte fylla på valda_saker förrän vid postning av formuläret då det annars blir mkt krångligare att plocka bort värden ur denna. Ge mig ett par minuter så får du ett förslag.

 

Länk till kommentar
Dela på andra webbplatser

Ok, här kommer det.

 

- Ersätt din Textarea med en multiple-select samt lägg till en Ta bort-knapp och ändra i Submit-knappen enligt följande:

<select style="width:100px;height:100px;"  multiple="multiple" id="box"></select>
<input type="button" value="Ta bort" onclick="RemoveFromList();">
<input type="submit" onclick="CopyValues();" value="post">

 

Ändra "lägg_till"-funktionen till:

function lagg_till() {
var sel1 = document.getElementById('countries');
var sel2 = document.getElementById('cities');
var antal1 = document.getElementById('antal1');
var antal2 = document.getElementById('antal2');
var str = sel1.value+ "" + antal1.value+ ""+sel2.value+""+antal2.value+"<br>";
AddToList(str);
}

 

samt lägg till följande funktioner

function AddToList(text) {
o=document.getElementById("box");
o.options.add(new Option(text,text));
}
function RemoveFromList() {
o=document.getElementById("box");
for (i=o.options.length-1;i>-1;i--) {
	if (o.options[i].selected)
		o.remove(i);
}
}
function CopyValues() {
o=document.getElementById("box");
for (i=0;i<o.options.length;i++) {
	document.getElementsByName('valda_saker')[0].value += o.options[i].value+"#";
}
}

 

Nu kan du markera en eller flera poster i listan och klicka på Ta bort.

[inlägget ändrat 2008-01-31 15:37:12 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Tack!!!!

 

Det blev jättebra... :-)

 

 

En liten skitsak bara, kan man få radbrytning utan att taggen<BR> syns?

Det står <br> på var rad i min lista på webben..?

Den borde väl inte synas, eller?

 

var str = "rubrik: " +sel1.value+ "Antal" + antal1.value+ "rubrik"+sel2.value+"Antal"+antal2.value+"<br>";

 

RESULTAT

Rubrik antal rubrik antal <br>

 

 

Verkligen ett stort tack för hjälpen!

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Bara att ta bort. Jag vet inte ens vad den gör där från början

var str = "rubrik: " +sel1.value+ "Antal" + antal1.value+ "rubrik"+sel2.value+"Antal"+antal2.value;

 

Vill du sen ha med den när formuläret postas är det bara att lägga till den då

unction CopyValues() {
o=document.getElementById("box");
for (i=0;i<o.options.length;i++) {
	document.getElementsByName('valda_saker')[0].value += o.options[i].value+"<br>#";
}
}

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Kan man ändra hur raden ska se ut med <br>-tagg?

 

Jag skulle vilja ha

rubrik1 och antal<br>

rubrik2 och antal

 

var str = "rubrik: " +sel1.value+ "Antal" + antal1.value+ "<br>rubrik"+sel2.value+"Antal"+antal2.value;

Nu skriver den ut allt jag skriver...

 

/ Linda

 

 

Länk till kommentar
Dela på andra webbplatser

Vad menar du att den skriver ut Allt du skriver?

Ska den inte det :)

 

Är det på klientsidan eller på serversidan detta handlar om?

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Jo, den ska skriva ut allt..:-)

 

Men jag skulle gärna vilja ha lite fotmatering / radbrytning...

Just nu kommer all text i en klunga... Skulle vilja ha fetstil på rubrik och göra en radbrytning i formuläret som kunden ser...

 

Jag skulle vilja ha

<b>rubrik1</b> och antal<br>

<b>rubrik2 </b>och antal

 

Som det ser ut nu på formulärsidan:

<b>rubrik1</b>antal<br><b>rubrik2</b>antal

 

Medan jag skulle vilja att det såg ut på formulärsidan:

rubrik1 antal

rubrik2 antal

 

Hoppas detta var en bättre förklaring... :-)

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Orkar inte kolla igenom hela tråden men Var skriver du ut det?

Är det i en div med innerHTML borde det formateras sig automatiskt.

 

Länk till kommentar
Dela på andra webbplatser

Nä, om det är den där listan jag skrev åt dig så kan du inte formattera mer än att ge all text ett visst utseende. Det är trots allt inget annat än en dropdown med multipla rader. Det går förvisso att ge olika options olika färg och stil, men inom samma rad är det fixt.

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Jag försöker ge rubriken antal fetstil, men det går inte den skriver ut:

<b>Antal:</b>"

Så det verkar inte som om jag kan formatera texten alls...

 

/ Linda

 

var str = "Streckkodsläsare: " +sel1.value+ " <b>Antal:</b>" + antal1.value+ " Tilläggskomponenter: "+sel2.value+" Antal:"+antal2.value+"";

 

 

Länk till kommentar
Dela på andra webbplatser

Ahh, är det en dropdown-list är det "kört" :)

Men jag lämnar över supporten till Anjuna, han har kanske redan tagit lite "fredagsfritt" ;)

 

Länk till kommentar
Dela på andra webbplatser

han har kanske redan tagit lite "fredagsfritt"

Sitter bara och rullar tummarna här på kontoret. Min kund har gått för dagen och utan hans feedback kommer jag inte längre för tillfället. Tror jag sticker tidigt och tar en öl istället, om inga roliga trådar ramlar in snart =)

 

Lindacharlotta: Som sagt, det går inte formattera en select, helt enkelt för att du inte kan lägga in html-taggar inom option-taggar.

 

Länk till kommentar
Dela på andra webbplatser

Sitter också och gör det sista innan helgen, väntar på ett litet svar/feedback ifrån chefen som är "Ok" sen är det fredag :))

 

Trevlig helg på dig och hoppas ölen blir kall och god ;)

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Hur gör jag om jag har använt mig utav 2 st selecfält istället för 1...

I min skicka knapp står:

 

onclick:CopyValues()

 

Hur får jag in värdena i CopyValues1() i CopyValues

 

{

 

 

function CopyValues() {
o=document.getElementById("box");
for (i=0;i<o.options.length;i++) {
document.getElementsByName('valda_saker')[0].value += o.options[i].value+"<br>";
	}
}


function CopyValues1() {
o=document.getElementById("box1");
for (i=0;i<o.options.length;i++) {
document.getElementsByName('valda_saker1')[0].value += po.options[i].value+"<br>";
}
}

 

/ Hoppas ni förstår vad jag menar.... :-)

 

/ Linda

 

[inlägget ändrat 2008-02-06 08:42:09 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...