webForumDet fria alternativet

Formulärcheck med radiobutton

5 svar · 376 visningar · startad av brw

brwMedlem sedan juli 2000619 inlägg
#1

Jag har ett formulär med 2 radiobutton-knappar.

<input type="radio" name="val" value="nej">
<input type="radio" name="val" value="ja">

<input type="text" name="orsak" value="">
<input type="text" name="kommentarer" value="">

Inget är markerat från början så först måste man få ett svar att man måste svara på frågan om man försöker gå vidare utan att bocka i någon utav radioknapparna och sen om man svarar ja på ovanstående så vill jag även kontrollera att man har fyllt i fälten nedanför och om man svarar nej ska man kunna gå vidare utan att kolla övriga fält.

Hur skulle en sådan check kunna se ut.. Jag har en annan formulärcheck men då kollar den alla oavsett vad man fyllt i... nu vill jag ju som sagt ha alternativet ja eller nej som styr om den ska kolla vidare.

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Om vi antar att din valideringsfunktion heter v och att du som argument skickar in en referens till formulärobjektet. Då

<form onsubmit="return v(this)"...

function trim(s){
    return s.replace(/(^\s+)|(\s+$)/g, "");
}

function v(o){
    var yn = o.elements["val"];

    if (!(yn[0].checked || yn[1].checked)){
        if (confirm("Gå vidare...")){
            if (trim(o.elements["orsak"].value).length == 0){
                alert("Fyll i 'orsak'");
                return false;
            }

            if (trim(o.elements["kommentarer"].value).length == 0){
                alert("Fyll i 'kommentarer'");
                return false;
            }
        }
    }

    return true;
}
brwMedlem sedan juli 2000619 inlägg
#3

Tack, det är nästan vad jag vill ha fast det fungerar inte riktigt som jag vill.
Jag har försökt mig på en egen kod som jag inte får att fungera men det kanske kan se ut såhär:

Alltså.. har man inte valt betalningssätt fungerar det. Då kommer en alert som säger att du måste välja betalningssätt.

Men om man valt betalningssätt och värdet på betalningssattform = K då vill jag att man ska kolla ytterligare några fält. Typ kortnummer, utgångsdatum osv.. det är det som jag inte får att fungera.

Se nedan kod.

Vad är det som är fel?

<SCRIPT LANGUAGE="JavaScript">
<!--
function paymentcheck() {

 var typ = document.finalize_order.betalningssattform;
 var ch = false;

tmp_typ = typ.length;
for (i = 0; i < typ.length; i++)

//{
if (typ[i].checked == true) {
{ch=true}
}

if (ch == false) {
{alert('Du måste välja betalningssätt!')
return false}
}

if(document.finalize_order.betalningssattform.value=="K"){

 var kortnummerform = document.finalize_order.kortnummerform.value; 

if(kortnummerform.length<4) {
	alert("Du måste fylla i fullständigt kortnummer!" );
	document.finalize_order.kortnummerform.focus();
	return false;
}

}

return (true);
}
//-->
</SCRIPT>
Peter SMedlem sedan dec. 20025 483 inlägg
#4

Testa följande:

<SCRIPT LANGUAGE="JavaScript">
<!--
function paymentcheck() {

    var typ = document.finalize_order.betalningssattform;
    var ch  = false;
    var t   = 0;

    tmp_typ = typ.length;
    for (i = 0; i < typ.length; i++)
        if (typ[i].checked) {
            ch=true;
            t   = typ[i];
            break;
        }

    if (ch == false) {
        alert('Du måste välja betalningssätt!');
        return false;
    }

    if (t.value=="K"){
        var kortnummerform = document.finalize_order.kortnummerform.value; 

        if (kortnummerform.length<4) {
	    alert("Du måste fylla i fullständigt kortnummer!" );
	    document.finalize_order.kortnummerform.focus();
	    return false;
        }

    }

    return true;
}
//-->
</SCRIPT>
brwMedlem sedan juli 2000619 inlägg
#5

Tack så mycket!

Fungerar klockrent!!! :)

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Glöm inte att använda funktionen acceptera som slutgiltigt svar.

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