Solved

I need to make a radio button mandatory on this html form

Posted on 2009-07-07
4
631 Views
Last Modified: 2013-12-25
Hi

I have a form, I have made a checkbox mandatory and an alert comes up if it is not ticked.
I would like to do the same for a radio button (choice of 5) but cannot seem to get it to work.

thanks.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<script type="text/javascript">

// <![CDATA[

function validate(frm) {

if (frm.checkbox.checked==false)

{

alert("You must read and consent to our privacy policy to send this form.");

return false;

}

}

// ]]>

</script>

</head>

<body>

<form method="POST" action="captcha.php" onSubmit="return validate(form);" name="form"> 

<textarea name="user_comments" cols="75" rows="5" id="user_comments"></textarea>

</p>

<p align="left" class="bold">Where did you hear

  about us?*</p>

<p align="left">

  <input type="radio" name="source" id="source" value="radio1">

  General Internet Search</p>

<p align="left">

  <input type="radio" name="source" id="source" value="radio2">

  Online  'Find a Financial Adviser'

  

  Directory via 'unbiased.co.uk.'</p>

<p align="left">

  <input type="radio" name="source" id="source" value="radio3">

  Nursing Home Database (ucarewecare.com)</p>

<p align="left">

  <input type="radio" name="source" id="source" value="radio4">

  Care Provider (please state which one)

  <input name="care_provider_source_is" type="text" id="radio4_source_is" size="55" maxlength="55">

</p>

<p align="left">

  <input type="radio" name="source" id="source" value="radio5">

  Other (please state):

  <input name="other_source_is" type="text" id="radio5_source_is" size="75" maxlength="75">

</p>

<p class="bold">Please press the buttons below

  to confirm that you have read our <a href="#privacypolicy">privacy

  policy</a><br>

  and to submit

  your request. </p>

<p align="left"><span class="bold">

  <input type="checkbox" name="checkbox" id="checkbox" value="1">

  </span>I/We have read and consent to your privacy policy*</p>

<p align="left" class="smalltext">The fields marked * are mandatory.</p>

<table width="549" class="bigone">

  <tr class="style1">

    <td colspan="2" align="center"> Ready ? Ok, but before you click 'Send Form' please insert the same letters and numbers you see in the image on the left into the box on the right.<br /></td>

  </tr>

  <tr class="style1">

    <td width="267" align="center"><p> <img src="captcha_image.php" /></td>

    <td width="270" align="center"><input type="text" name="captcha_input" size="15"></td>

  </tr>

</table>

<p>

  <input type="submit" name="submit" value="Please Press Here to Submit Your Request">

</body>

</html>

Open in new window

0
Comment
Question by:sp0tta
  • 2
  • 2
4 Comments
 
LVL 11

Expert Comment

by:JohnSixkiller
ID: 24792881
Hi, you have 2 options. The easy way is to make some default selection by adding "checked" to html radio.

To javascript check:
var rbs = document.getElementsByName("source");

var isOK = false;

for(var i=0; i<rbs.length; i++){

  if(rbs[i].checked){

     isOK = true;

     break;

  }

}

if(!isOK) alert("Select something.");

Open in new window

0
 

Author Comment

by:sp0tta
ID: 24792921
Hi

I would prefer to make sure the checked button was chosen by the user.

thanks
0
 
LVL 11

Accepted Solution

by:
JohnSixkiller earned 500 total points
ID: 24792952
So add my code to your function:
function validate(frm) {

  if (frm.checkbox.checked==false){

   alert("You must read and consent to our privacy policy to send this form.");

   return false;

  }

  var rbs = document.getElementsByName("source");

  var isOK = false;

  for(var i=0; i<rbs.length; i++){

   if(rbs[i].checked){

     isOK = true;

     break;

   }

  }

  if(!isOK){

    alert("Select something.");

    return false;

  }
 

}

Open in new window

0
 

Author Comment

by:sp0tta
ID: 24792966
Perfect, quick and easy

thanks.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Show banners that are blocked by Ad Muncher 10 46
Polygon I google maps 1 14
Detect change of Select using JavaScript Only 12 45
Change javascript css 1 19
Building a website can seem like a daunting task to the uninitiated but it really only requires knowledge of two basic languages: HTML and CSS.
An enjoyable and seamless user experience can go a long way on an eCommerce site. While a cohesive layout and engaging copy play roles in creating a positive user experience, some sites neglect aspects that seem marginal but in actuality prove very …
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now