webForumDet fria alternativet

Godkänn antal innan submit!

6 svar · 665 visningar · startad av nakoz

nakozMedlem sedan dec. 1999653 inlägg
#1

Hej!

Jag genererar ett formulär från asp-kod och får således mellan 50 och 250 fält där antal ska anges.

Dock så vill jag göra en funktion där jag försäkrar mig att det ihopslagna antalet inte understiger ex. 80.

Uträkningen skulle jag kunna göra i asp då formulär-datan tas emot, men då kommer användarna få fylla i alla värden igen om de slussas tillbaka.
Således är det bättre att kolla innan submit.

OM antalet understiger 80 så vill jag dock inte bara skriva "fyll i mer", utan då vill jag ha en "Är du säker på att du vill skicka trots att det är för lite?", för det finns undantagsfall!

Input-fälten kallar jag för 'val_NNNN', där NNNN föreställer 4st nuffror :)

Jag vet knappt var jag ska börja... Tack på förhand.

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Något såhär:

<script
type="text/javascript">
<!--
function check(el)
{
	var input = el.getElementsByTagName("input");
	var sum = 0;
	for(var i =0;i<input.length;i++)
	{
		if(input[i].name.substring(0,3) == "val")
			sum += parseFloat(input[i].value);
	}
	if(sum < 80)
		return false;
	else
		return true;
}
//-->
</script>
<form method="post" onsubmit="return check(this)">
	<input type="text" name="val_1" />
	<input type="text" name="val_2" />
	<input type="submit" />
</form>

Dock så måste ju val_xxx vara ett tal för att detta skall fungera.

nakozMedlem sedan dec. 1999653 inlägg
#3

Sorry för sent svar.

Tack voigtann, vi är nästan där!
Din kod låter inte formuläret posta om antalet understiger "80", so far so good.

Det jag saknar är bara att jag vill ha en alert som säger typ "ditt antal är för lågt, skicka ändå?" OK / Avbryt.

Tyvärr tryter (eller helt enkelt saknas) min kunskap för att trycka in det i koden!

voigtann1Medlem sedan juni 20019 519 inlägg
#4

Det är ju bara att lägga in det i if frågan:

function check(el)
{
	var input = el.getElementsByTagName("input");
	var sum = 0;
	for(var i =0;i<input.length;i++)
	{
		if(input[i].name.substring(0,3) == "val")
			sum += parseFloat([b]0 + [/b]input[i].value);
	}
	if(sum < 80)
		[b]return confirm('Ditt antal är för lågt, skicka ändå?');[/b]
	else
		return true;
}
nakozMedlem sedan dec. 1999653 inlägg
#5

Just ja, det är confirm den heter! Ska prova direkt!

nakozMedlem sedan dec. 1999653 inlägg
#6

Sweet!

Tusen tack för hjälpen, fungerar precis som önskat!

nakozMedlem sedan dec. 1999653 inlägg
#7

Just ja, bara som en litten komplettering så ändrade jag:

if(input*.name.substring(0,4) == "val_")*

för att matcha inputsen i första exemplet du postade :)

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)