Avatar billede rdc Nybegynder
25. januar 2007 - 16:15 Der er 8 kommentarer og
1 løsning

if radio button checked then

hejsa

jeg skal have lavet en funktion, som kan undersøge om en radio button er checked, og hvis den er det, så skal formularen udføres ellers skal der komme en popup frem som siger; Du har ikke udfyldt korrekt!

Jeg prøvede med denne kode:

<html>
<head>
<script>
function checkContactUs (frm) {
var send,varAlert;
varAlert = "";
send=true;
alert(frm.ADDITIONALINFO2[0]);
    if (!(frm.ADDITIONALINFO2[0].checked || frm.ADDITIONALINFO2[1].checked)) {
        varAlert = varAlert + "Dette felt skal udfyldes";
        send = false;
    }

    if (send == false) {
        alert(varAlert)
    }
    return send;
}
</script>
</head>

Min formular ser således ud:

<FORM NAME="order">
<input type=hidden name="ID_NUM" value="P1">
P1
</font>
</td>
<td align="left">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type=hidden name="NAME" value="Stefanos">
Stefanos
</font>
</td>
<td align="left">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="hidden" name="ADDITIONALINFO1" value="tomat, ost, rejer, muslinger, tun">
tomat, ost, rejer, muslinger, tun
</font>
</td>
<td align="center">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type=hidden name="QUANTITY" value="1">
<input type=hidden name="PRICE" value="">
42,-
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="radio" name="ADDITIONALINFO2" value="Alm" onclick="this.form.PRICE.value='42.00';">
</font>
</td>
<td align="center">
<font size="1" face="Franklin Gothic Book" color="#000000">
85,-
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="radio" name="ADDITIONALINFO2" value="Fam" onclick="this.form.PRICE.value='85.00';">
<input type=hidden name="SHIPPING" value="20">
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input name="test" type="image" src="images/ikon-kob.gif" value="Køb" onClick="return checkContactUs(this); AddToCart(this.form);" class="button">       
</FORM>


</body>
</html>


Det virker desværre ikke, håber nogen kan og vil hjælpe mig... På forhånd tusind tak.
Avatar billede jih Nybegynder
25. januar 2007 - 18:31 #1
Nu kan det være jeg er lidt rusten indenfor js, men tror det her ville virke?

<script>
function checkContactUs (frm) {
var send,varAlert;
varAlert = "";
send=true;
    if (!(order.ADDITIONALINFO2[0].checked || order.ADDITIONALINFO2[1].checked)) {
        varAlert = varAlert + "Dette felt skal udfyldes";
        send = false;
    }

    if (send == false) {
        alert(varAlert)
    }
    return send;
}
</script>
Avatar billede rdc Nybegynder
25. januar 2007 - 22:12 #2
har lige prøvet dit forslag, men det virkede desværre ikke ):

altså prøvede såda her:

<script>
function checkContactUs (order) {
var send,varAlert;
varAlert = "";
send=true;
    if (!(order.ADDITIONALINFO2[0].checked || order.ADDITIONALINFO2[1].checked)) {
        varAlert = varAlert + "Dette felt skal udfyldes";
        send = false;
    }

    if (send == false) {
        alert(varAlert)
    }
    return send;
}
</script>


rettede i dit: function checkContactUs (frm) {
til: function checkContactUs (order) {

og så prøvede jeg med
<input name="test" type="image" src="images/ikon-kob.gif" value="Køb" onClick="return checkContactUs(this); AddToCart(this.form);" class="button">       


men fungerede ikke desværre
Avatar billede roenving Novice
26. januar 2007 - 05:31 #3
-- kald på form-tagget:

<script>
function checkContactUs (frm) {
    if (!frm.ADDITIONALINFO2[0].checked && !frm.ADDITIONALINFO2[1].checked)) {
        alert("Dette felt skal udfyldes");
        frm.ADDITIONALINFO2[0].focus();
        return false;
    }
    return true;
}
</script>

...

<FORM NAME="order" onsubmit="return checkContactUs(this);">

...

<input type="radio" name="ADDITIONALINFO2" value="Alm" onclick="this.form.PRICE.value='42.00';">

...

<input type="radio" name="ADDITIONALINFO2" value="Fam" onclick="this.form.PRICE.value='85.00';">

...

<input name="test" type="image" src="images/ikon-kob.gif" value="Køb" onClick="AddToCart(this.form);" class="button">       
</FORM>
Avatar billede jhe-ting Nybegynder
26. januar 2007 - 05:41 #4
Dette eksempel har en vis funktionalitet. Ikke valid kode. Håber du kan bruge det.

<html>
<head>
<script>
/**/
function AddToCart(order){
    // Denne rutine blev nævnt men aldrig kaldt i eksemplet
    // Er den der allerede skal denne slettes
    var msg = "AddToCart: " + order.ADDITIONALINFO1.value + " : ";
    if (order.ADDITIONALINFO2[0].checked) {
        msg += order.ADDITIONALINFO2[0].value
    } else if (order.ADDITIONALINFO2[1].checked) {
        msg += order.ADDITIONALINFO2[1].value
    } else msg += "Ingen størrelse";
    alert(msg)
}
/**/
function isValid(frm) {
var send,varAlert;
varAlert = "";
send=true;
    if (!(frm.ADDITIONALINFO2[0].checked || frm.ADDITIONALINFO2[1].checked)) {
        varAlert = varAlert + "Dette felt skal udfyldes";
        send = false;
        frm.ADDITIONALINFO2[0].focus();
    }

    if (send == false) {
        alert(varAlert)
    }
    return send;
}
function checkAndAdd(order){
    if (isValid(order)) {
        AddToCart(order);
    }
}
</script>
</head>

Min formular ser således ud:

<FORM NAME="order">
<input type=hidden name="ID_NUM" value="P1">
P1
</font>
</td>
<td align="left">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type=hidden name="NAME" value="Stefanos">
Stefanos
</font>
</td>
<td align="left">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="hidden" name="ADDITIONALINFO1" value="tomat, ost, rejer, muslinger, tun">
tomat, ost, rejer, muslinger, tun
</font>
</td>
<td align="center">
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type=hidden name="QUANTITY" value="1">
<input type=hidden name="PRICE" value="">
42,-
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="radio" name="ADDITIONALINFO2" value="Alm" onclick="this.form.PRICE.value='42.00';">
</font>
</td>
<td align="center">
<font size="1" face="Franklin Gothic Book" color="#000000">
85,-
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input type="radio" name="ADDITIONALINFO2" value="Fam" onclick="this.form.PRICE.value='85.00';">
<input type=hidden name="SHIPPING" value="20">
</font>
</td>
<td>
<font size="1" face="Franklin Gothic Book" color="#000000">
<input name="test" type="image" src="images/ikon-kob.gif" value="Køb" title="Læg i kurv" onClick="checkAndAdd(this.form); return false;" class="button">
<input type="submit" value="Send ordre" onclick="return isValid(this.form);">
</FORM>


</body>
</html>
Avatar billede rdc Nybegynder
26. januar 2007 - 17:01 #5
hej roenving, det virker slet ikke når jeg indsætter det du skrev desværre ): andre forslag?


jhe-ting tak for forslaget, men jeg skal bruge et script, som tjekker med en knapper... det du sender er lavet over to knapper.
Avatar billede rdc Nybegynder
26. januar 2007 - 17:19 #6
ja, jhe-ting der findes allerede en AddToCart funktion inde i en anden .js fil, her er den:

function AddToCart(thisForm) {
  var iNumberOrdered = 0;
  var bAlreadyInCart = false;
  var notice = "";
  iNumberOrdered = GetCookie("NumberOrdered");

  if ( iNumberOrdered == null )
      iNumberOrdered = 0;

  if ( thisForm.ID_NUM == null )
      strID_NUM    = "";
  else
      strID_NUM    = thisForm.ID_NUM.value;

  if ( thisForm.QUANTITY == null )
      strQUANTITY  = "1";
  else
      strQUANTITY  = thisForm.QUANTITY.value;


  if ( thisForm.PRICE == null )
      strPRICE      = "";
  else
      strPRICE      = thisForm.PRICE.value;


  if ( thisForm.NAME == null )
      strNAME      = "";
  else
      strNAME      = thisForm.NAME.value;


  if ( thisForm.SHIPPING == null )
      strSHIPPING  = "0.00";
  else
      strSHIPPING  = thisForm.SHIPPING.value;


    if ( thisForm.ADDITIONALINFO == null ) {
    strADDTLINFO = "";
    } else {
    strADDTLINFO = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
    }


    if ( thisForm.ADDITIONALINFO2 != null ) {
    for (var i=0; i < thisForm.ADDITIONALINFO2.length; i++)
    {
    if (thisForm.ADDITIONALINFO2[i].checked)
    {
    var rad_val = thisForm.ADDITIONALINFO2[i].value;
    }
    }
    strADDTLINFO += "" + rad_val;
    } else if ( thisForm.ADDITIONALINFO3 == null ) {
      strADDTLINFO  = "";
    } else {
      strADDTLINFO  = thisForm.ADDITIONALINFO3.value;
    }

    if ( thisForm.ADDITIONALINFO4 != null ) {
    for (var i=0; i < thisForm.ADDITIONALINFO4.length; i++)
    {
    if (thisForm.ADDITIONALINFO4[i].checked)
    {
    var rad_val = thisForm.ADDITIONALINFO4[i].value;
    }
    }
    strADDTLINFO += "" + rad_val;
    }

  //Is this product already in the cart?  If so, increment quantity instead of adding another.
  for ( i = 1; i <= iNumberOrdered; i++ ) {
      NewOrder = "Order." + i;
      database = "";
      database = GetCookie(NewOrder);

      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      fields[4] = database.substring( Token3+1, Token4 );
      fields[5] = database.substring( Token4+1, database.length );

      if ( fields[0] == strID_NUM &&
          fields[2] == strPRICE  &&
          fields[3] == strNAME  &&
          fields[5] == strADDTLINFO
        ) {
        bAlreadyInCart = true;
        dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE    + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO;
        strNewOrder = "Order." + i;
        DeleteCookie(strNewOrder, "/");
        SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
        notice = strQUANTITY + " x " + strNAME + "(" + strADDTLINFO + ")" + strAdded;
        break;
      }
  }


  if ( !bAlreadyInCart ) {
      iNumberOrdered++;

      if ( iNumberOrdered > 12 )
        alert( strSorry );
      else {
        dbUpdatedOrder = strID_NUM    + "|" +
                          strQUANTITY  + "|" +
                          strPRICE    + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO;

        strNewOrder = "Order." + iNumberOrdered;
        SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
        SetCookie("NumberOrdered", iNumberOrdered, null, "/");
        notice = strQUANTITY + " x " + strNAME + "(" + strADDTLINFO + ")" + strAdded;
      }
  }

  if ( DisplayNotice )
      alert(notice);
}
Avatar billede rdc Nybegynder
26. januar 2007 - 17:22 #7
hej drenge det virker nu.... mange tak jhe-ting, havde misforstået dit eksempel i starten::

jeg indsat det her:


<script>
function isValid(frm) {
var send,varAlert;
varAlert = "";
send=true;
    if (!(frm.ADDITIONALINFO2[0].checked || frm.ADDITIONALINFO2[1].checked)) {
        varAlert = varAlert + "Dette felt skal udfyldes";
        send = false;
        frm.ADDITIONALINFO2[0].focus();
    }

    if (send == false) {
        alert(varAlert)
    }
    return send;
}
function checkAndAdd(order){
    if (isValid(order)) {
        AddToCart(order);
    }
}
</script>



også:

                        <input name="test" type="image" src="images/ikon-kob.gif" value="Køb" onClick="checkAndAdd(this.form);" class="button">
Avatar billede rdc Nybegynder
26. januar 2007 - 17:28 #8
håber det er fair for de andre, hvis jhe-ting får pointsene
Avatar billede jhe-ting Nybegynder
26. januar 2007 - 18:30 #9
Godt du fik det til at virke.
Tak for points. :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværkstekniker til Forsvarets Cyberdivision i Hvidovre – Er det dig?

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Enterprise Arkitektur i Forsvaret på Østerbro

Capgemini Danmark A/S

Open Application (Denmark)