Solved

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

Posted on 2009-07-07
4
633 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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

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 …
Because your company can’t afford for you to make SEO mistakes, you’ll want to ensure you’re taking the right steps each and every time you post a new piece of content. This list of optimization do’s and don’ts can help you become an SEO wizard.
In this tutorial viewers will learn how to embed videos in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: "<!DOCTYPE html>": Use the <video> tag to insert a video. Define the src as the URL of your video; this is similar to …
The viewer will learn how to count occurrences of each item in an array.

839 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