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

fORMULÄR


Lindacharlotta

Rekommendera Poster

Lindacharlotta

Det är fortfarande mitt formulär med mina två select-boxar och två textfält..

Jag har även två stycken fält:

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

<input type="hidden" value="valda_saker1"> &

 

Select1 och antal1 sparasi min selectlista box (radar upp valda värden)

Select2 och antal2 sparasi min selectlista box1 (radar upp valda värden)

 

Sedan ska båda värdena efter de stoppats in i valda_saker & valda_saker1 skickas med knappen submit med resten av mitt formulär.

 

Mitt javascript:

 

function updateSelect2(nId) {
var sel1 = document.getElementById('val1');
var sel2 = document.getElementById('val2');
var sel4 = document.getElementById('antal1');
var sel3 = document.getElementById('antal2');
sel2.options.length=0;






if (sel1.value=="GT10Q - rs 232"||sel1.value=="GT10Q - usb"||sel1.value=="Gryphon D432, Blue, RS232, USB & Wegde"){

switch (sel1.value) {
case "GT10Q - rs 232":	

	sel2.disabled=false;			
	sel2.options[0]=new Option("Interface cable - GT100","Interface cable - GT100");
	sel2.options[1]=new Option("Ac Adapter - GT100","Ac Adapter - GT100");	
break
case "GT10Q - usb":

	sel2.disabled=false;	
	sel2.options[0]=new Option("Interface cable USB - GT10Q","Interface cable USB - GT10Q");	

break
case "Gryphon D432, Blue, RS232, USB & Wegde":

	sel2.disabled=false;	
	sel2.options[0]=new Option("Kit PG5-0P55 AC/DC Power Supply EU","Kit PG5-0P55 AC/DC Power Supply EU");
	sel2.options[1]=new Option("CAB-362 RS2 Coild 9pin fem","CAB-362 RS2 Coild 9pin fem");
	sel2.options[2]=new Option("CAB-412 USB Type A, Opt-PWR, Straight","CAB-412 USB Type A, Opt-PWR, Straight");

break
}

}
}

function visa_dolj(nId) {
sel3.disabled=(nId>0)? false:true;
sel3.value="";

}


function lagg_till() {
var sel1 = document.getElementById('val1');
var antal1 = document.getElementById('antal1');
var str = sel1.value+ "  Antal:"+""+ + antal1.value;	
AddToList(str);
sel2.options.value=0;
sel1.options.value=0;
antal2.value="";
antal1.value="";


}


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







function lagg_till1() {

var sel2 = document.getElementById('val2');
var antal2 = document.getElementById('antal2');
var str = sel2.value+"   Antal:"+antal2.value+"";	
AddToList1(str);
antal2.value="";
antal1.value="";




}


function AddToList1(text) {
po=document.getElementById("box1");
po.options.add(new Option(text,text));
}


function RemoveFromList1() {
po=document.getElementById("box1");
for (i=po.options.length-1;i>-1;i--) {
	if (po.options[i].selected)
		o.remove(i);
}
}


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

}
}

 

Mitt problem är att jag vill att båda funktionerna CopyValues & CopyValues1 ska skickas med knappen submit...

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

  • Svars 66
  • Skapad
  • Senaste svar
Mitt problem är att jag vill att båda funktionerna CopyValues & CopyValues1 ska skickas med knappen submit...
För att trigga två funktioner blir det:

onclick="CopyValues();CopyValues1();"

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Tack, än en gång...

Har en tendens att göra allt svårare än vad det är... :-)

 

 

/ Linda

 

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Hmm...

 

Ibland får jag dubbla värde i mitt mail och ibland tredubbla...Oftast stämmer mina värde, men inte alltid...

 

Vet du vad det kan bero på eller var jag skall börja leta?

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Kolla första att formlären innehåller korrekta värden innan du lämna sidan och kommer till mailsidan.

Gör den det är det ju något med mailkoden och då får du visa den så är det lättare för oss att se om där är något som inte stämmer.

 

Men ställ då den frågan i rätt forum, detta är ju om javascript.

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Ok, det gör jag... Har fungerat länge nu....

Får väl se...

 

Jag måste lägga in en validering på den knappen

 

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

Kan man inte bara lägga in en if-sats som kolllar av om antal är ifyllt och markerar rutan röd..Är den ifylld kör den på som vanligt...?

 

function lagg_till() {
var sel1 = document.getElementById('val1');
var antal2 = document.getElementById('antal2');
var antal1 = document.getElementById('antal1');

if (antal1==0){	
antal1.style.backgroundColor='#f4d2d2';
antal1.focus(); 
}
else{
var str = sel1.value+ "Antal:"+""+ antal1.value;	
AddToList(str);
sel2.options.value=0;
sel1.options.value=0;
antal1.value="";
antal2.value="";
}


}

 

/ Linda

 

[inlägget ändrat 2008-02-06 11:49:17 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

Menar du om antal1 inenhåller något?

Är if-satsen något du håller på att testa med?

 

Vill man kolla antal1-värde kan man kolla boolen-värdet:

if(!antal1) {
färga rutan
sätt fokus
}
else {
...
}

Finns det något värde är det true annars false.

 

Men det kanske bara får var siffror och mer än 0?

 

[inlägget ändrat 2008-02-06 11:56:03 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Ja, jag vill inte att man ska kunna lägga till selectrutan och antal i listan förrän man vet att båda två är ifyllda... Så det räcker att kolla att antal är ifyllt...

Nu skriver den ut "antal" var gång man klickar på knappen utan att ha fyllt i ngt.

(var str = sel1.value+ "Antal:"+""+ antal1.value;)

 

Ditt script gjorde ingen skillnad skriver fortfarande ut antal...och ingen röd bakgrundsfärg...

 

Räcker det att man hämtar fälten

var sel1 = document.getElementById('val1');

var antal2 = document.getElementById('antal2');

var antal1 = document.getElementById('antal1');

och sedan räcker det att skriva:

antal1.style.backgroundColor='#f4d2d2';

 

eller jag måste specificera mer?

 

/ LInda

 

Länk till kommentar
Dela på andra webbplatser

Får kolla mer sen, nu är det lunch och det kan man ju inte hoppa över ;)

 

Ah, jag som missade ett viktig del i kontrollen.

Ändra till: if(!antal1.value)

Nu kolla den bara om där är något värde.

 

Vill du bara ha för tal och mer än 0 blir det:

if(/^\d+$/.test(antal1.value) && parseInt(antal1.value)>0) {
// lägg in 
}
else {
// färga rutan
// sätt fokus
}

Nu har du helgarderat dig :)

 

O ja, det räcker att peka så på fältet.

 

[inlägget ändrat 2008-02-06 12:41:28 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Så här ser min funktion ut då:

function lagg_till() {
var sel1 = document.getElementById('val1');
var antal2 = document.getElementById('antal2');
var antal1 = document.getElementById('antal1');

if(/^\d+$/.test(antal1.value) && parseInt(antal1.value)>0) {
	var str = sel1.value+ "Antal:"+""+ antal1.value;	
	AddToList(str);
	sel2.options.value=0;
	sel1.options.value=0;
	antal1.value="";
	antal2.value="";	
}
else 
{
	antal1.style.backgroundColor='#f4d2d2';
	antal1.focus();
}

Felmeddelande:

 

Ett objekt förväntas, så pekar den till denna raden:

<input type="button" value="L&auml;gg till" onClick="lagg_till()">

 

Vad är det som är fel...?

 

Länk till kommentar
Dela på andra webbplatser

Är det nu ett tal som värde och det är mer än 0 så kör funktionen första delen av if-satsen, det är så du vill ha det?

 

Sen verkar det som att det saknas en } sist i funktionen, en som stänger funktionen.

 

Lägg även till ; i onclick-händelsen.

onclick="lagg_till();"

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Sista klammern var nog felet.. Det fungerar... :-)

 

Sista frågan.... :-)

 

Om jag vill att min select efter man tryckt på knappen ska hoppa tillbaka till option 0 dvs med texten Välj ngt...

Hur skriver jag det?

 

<select name="val1" id="val1" size="1" onChange="updateSelect2(this.selectedIndex);" style="width: 290px" class="falt">

<option value="valj" selected>Välj ngt</option>

<option value="vara1" selected>vara1</option>

<option value="vara2" selected>vara2</option>

</select>

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

document.getElementById("val1").options[0].selected=true;

Sen får du placera den raden på rätt ställe i javascriptet ;)

 

I ditt fall räcker det med:

sel1.options[0].selected=true;

 

Som du ser är det VÄLDIGT bra att lägga in objekten i varsin variabel och sen använder man variabeln. Blir mycket mindre kod!

 

[inlägget ändrat 2008-02-06 14:10:40 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Varsågod!

Lycka till!

 

Tack själv för poängen :thumbsup:

[inlägget ändrat 2008-02-06 14:27:06 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Nu fungerar mitt formulär som det ska förutom...att den ibland skickar dubbla och ibland tredubbla värde...

Finns ingen logik bakom (känns det som) och jag har letat, men jag hittar inte vad som är fel.

Det är inte mail(skickaiväg)-koden.

Jag har skrivit ut mina två hiddenfält så den skriver ut värdena direkt på skicka.asp-sidan.

<%

ett=Request.Form("valda_saker")

tva=Request.Form("valda_saker1")

Response.Write ett

Response.Write tva

%>

 

 


// Streckkodsläsare uppdaterar tillbehör. 
function updateSelect2(nId) {
var sel1 = document.getElementById('val1');
var sel2 = document.getElementById('val2');
var sel3 = document.getElementById('antal1');
var sel4 = document.getElementById('antal2');
var sel5 = document.getElementById('button');

sel2.options.length=0;
sel2.disabled=true;
sel3.disabled=(nId>0)? false:true;
sel4.disabled=true;
sel5.disabled=true;
sel5.disabled=(nId>0)? false:true;
sel3.style.backgroundColor='#ffffff';
sel4.style.backgroundColor='#ffffff';


if (sel1.value=="GT10Q (kratta) RS232 inkl. kabel & Ac Adapter"||sel1.value=="GT10Q (kratta) USB inkl. kabel"||sel1.value=="Gryphon D432, Blue, RS232, USB & Wegde"||sel1.value=="Gryphon D432, Blue, RS232, PS2 & Wegde"||sel1.value=="QS2500 (kratta) USB inkl. kabel"){

switch (sel1.value) {
case "bla bla bla":	

	sel4.disabled=false;
	sel2.disabled=false;			
	sel2.options[0]=new Option("text","text");
break
case "bla bla":

	sel4.disabled=false;
	sel2.disabled=false;	
	sel2.options[0]=new Option("text1","text1 ");
	sel2.options[1]=new Option("text2","text2");			

break
case "bla":	

	sel4.disabled=false;
	sel2.disabled=false;			
	sel2.options[0]=new Option("text3","text3");
break
case "bla bla bla bla":	

	sel4.disabled=false;
	sel2.disabled=false;			
	sel2.options[0]=new Option("text4","text4");
break
case "blaaa":

	sel4.disabled=false;
	sel2.disabled=false;	
	sel2.options[0]=new Option("text5","text5");
break
}

}
}


function visa_dolj(nId) {
sel4.disabled=(nId>0)? false:true;
}



function lagg_till() {
var sel1 = document.getElementById('val1');
var antal2 = document.getElementById('antal2');
var antal1 = document.getElementById('antal1');

// Kollar att det är en siffra som skrivs in
if(/^\d+$/.test(antal1.value) && parseInt(antal1.value)>0) {
	var str = sel1.value + " Antal:"+""+ antal1.value;	
	AddToList(str);

	antal1.value="";
	antal2.value="";
	antal1.style.backgroundColor='#ffffff';
	sel1.options[0].selected=true;

	}
	else  
	{
	antal1.style.backgroundColor='#f4d2d2';
	antal2.style.backgroundColor='#ffffff';
	antal1.focus();
	}
}




function lagg_till1() {
var sel2 = document.getElementById('val2');
var antal2 = document.getElementById('antal2');
var antal1 = document.getElementById('antal1');


if(/^\d+$/.test(antal2.value) && parseInt(antal2.value)>0) {
	var str = sel2.value+" Antal:"+antal2.value+"";	
	AddToList1(str);
	antal1.value="";
	antal2.value="";
	antal2.style.backgroundColor='#ffffff';
	sel2.options[0].selected=true;
	sel1.options[0].selected=true;

	}
	else 
	{
	antal2.style.backgroundColor='#f4d2d2';
	antal1.style.backgroundColor='#ffffff';
	antal2.focus();
	}
}




// lägger till värdet i listan
function AddToList(text) {
o=document.getElementById("box");
o.options.add(new Option(text,text));
}

// Knapp tar bort valt värde
function RemoveFromList() {
o=document.getElementById("box");
for (i=o.options.length-1;i>-1;i--) {
	if (o.options[i].selected)
		o.remove(i);
}
}

// Kopierar värden till mitt hidden-fält så värdena skickas med mailet
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>";
}
}





// lägger till värdet i listan
function AddToList1(text) {
o=document.getElementById("box1");
o.options.add(new Option(text,text));
}

// Knapp tar bort valt värde
function RemoveFromList1() {
o=document.getElementById("box1");
for (i=o.options.length-1;i>-1;i--) {
	if (o.options[i].selected)
		o.remove(i);
}
}

// Kopierar värden till mitt hidden-fält så värdena skickas med
function CopyValues1() {
o=document.getElementById("box1");
for (i=0;i<o.options.length;i++) {
	document.getElementsByName('valda_saker1')[0].value += o.options[i].value+"<br>";

}
}

 

Väldigt tacksam för hjälp.... :-(

 

/ Linda

 

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...