Just nu i M3-nätverket
Jump to content

fORMULÄR


Lindacharlotta

Recommended Posts

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]

Link to comment
Share on other sites

  • Replies 66
  • Created
  • Last Reply

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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+"#";

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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>#";
}
}

 

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

Vad menar du att den skriver ut Allt du skriver?

Ska den inte det :)

 

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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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+"";

 

 

Link to comment
Share on other sites

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" ;)

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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 ;)

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.




×
×
  • Create New...