Skip to main content
Aiguste
Participant
May 10, 2017
Question

Struggling with writing Javascript if/else statement.

  • May 10, 2017
  • 1 reply
  • 1730 views

Hello everyone,

So I am a complete beginner at Javascript and I am quite struggling with one of my coursework. I need to write a function which would count the total cost of dress hire taking into account a dress type, cost per day and number of days. I had to use radio buttons for the selection of dress type while days will be entered by someone who will use the website. I've started writing a function but it would be great if you could tell me if I'm going to the right direction.

<script language="javascript">

  function calculate(){

  var price, days;

  var days = getField("days").value;

  document

  if(document.myform.dresstype[0].checked == true)

  price = 60 + (15*days);

  else if (document.myform.dresstype[1].checked == true)

  price = 90 + (30*days);

  else if (document.myform.dresstype[2].checked == true)

  price = 120+ (40*days);

  else price = 0;

  }

  </script>

I'm sure probably it's quite silly question, but thanks for your help

This topic has been closed for replies.

1 reply

try67
Community Expert
Community Expert
May 10, 2017

Is this for a PDF file or a web-site? Because the code you posted is for the latter, but this forum is about the former...

Aiguste
AigusteAuthor
Participant
May 10, 2017

Sorry! It is actually for the website.

sinious
Legend
October 30, 2017

Be careful about multi-line statement blocks without using braces, such as your if/else statements. I don't know how you're calculating the price (as in what 30/60/120, 15/30/40 etc) refers to but using your sample, here's an example of calculating it on a page:

HTML:

<select id="dressType">

<option value="0">Dress 1</option>

<option value="1">Dress 2</option>

<option value="2">Dress 3</option>

</select>

<label for="dressDays" size="3"> for # of days:</label>

<input type="number" value="30" id="dressDays" name="dressDays">

<button id="calcBtn">Calculate</button>

<p>Price: <input type="text" size="6" id="priceValue" value="0" readonly></p>

JS:

document.getElementById('calcBtn').onclick = calculate;

function calculate( evt ) {

// get selected dress

  var dress = document.getElementById('dressType').value;

  var days = document.getElementById('dressDays').value;

  var price = 0;

 

  switch ( dress ) {

  case "0":

    price = 60 + ( 15 * days );

      break;

    case "1":

    price = 90 + ( 30 * days );

      break;

    case "2":

      price = 120 + ( 40 * days );

      break;

    default:

      price = 0;

  }

 

  document.getElementById('priceValue').value = price.toString();

 

  console.log( 'Days, Dress, Price', days, dress, price );

}

JSFiddle Example

It's just using a switch statement instead of a series of if statements but either is fine. I used a switch statement since you appear to want to avoid the braces. The calculate button has a click event bound to the calculate function to produce the result in the price input. Hopefully it does what you want or leads you down the right path. Sorry for the late reply.