Click to See Complete Forum and Search --> : Checked radio button triggering verification of other fields


J-la
11-20-2002, 03:20 PM
Hello,

I am working with a form in which I want a text field to be required ONLY if a certain radio button (with a value of "yes") is checked.

Here is what I have so far: verification for ensuring that one of the radio buttons is checked and verification to ensure that the related field is filled out.

However I can't get one to be contingent upon the other. Below is my code (also attached in txt format if you prefer).

Please help...
Thanks!
Jennifer

<html>
<head>
<title>Form Verification Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language=javascript type="text/javascript">
<!--Hide script from older browsers

function submitIt(accts) {
escrowOption = -1
for (i=0; i<accts.ind_escrowagnt.length; i++) {
if (accts.ind_escrowagnt[i].checked) {
escrowOption = i
}
}
if (escrowOption == -1) {
alert("Please choose 'yes' or 'no' for Escrow Agents")
return false
}

if (accts.ind_escrowagnt.value == "yes"){

return true
}


field_value=accts.pct_time_escrowagnt.value
if (field_value == ""){
alert("Please enter a percentage")
accts.pct_time_escrowagnt.focus()
return false
}
else {
if (accts.ind_escrowagnt.value == "no"){

return true
}
}
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form method="post" name="accts" action="pd_app_acct.cfm" onSubmit="return submitIt(this)">

<table width="750""749" border="0">
<tr>
<td width="17%"><font size="2" face="Arial, Helvetica, sans-serif"></font></td>
<td width="33%"><font size="2" face="Arial, Helvetica, sans-serif"></font></td>
<td width="14%"><font face="Arial, Helvetica, sans-serif" size="2">% of Total
Time Spent</font></td>
<td width="36%"><font face="Arial, Helvetica, sans-serif" size="2">Fees Derived
From This Activity</font></td>
</tr>
<tr>
<td width="17%"><font size="2" face="Arial, Helvetica, sans-serif"><b><font color="#ff0000">
<input type="radio" name="ind_escrowagnt" value="yes">
Yes*
<input type="radio" name="ind_escrowagnt" value="no">
</font></b>No</font></td>
<td width="33%"> <font face="Arial, Helvetica, sans-serif" size="2">
</font> <font face="Arial, Helvetica, sans-serif" size="2"> Escrow Agent
</font></td>
<td width="14%"><font size="2" face="Arial, Helvetica, sans-serif"><b><font color="#ff0000">
<input type="text" name="pct_time_escrowagnt" size="5">
</font></b>%</font></td>
<td width="36%"><font face="Arial, Helvetica, sans-serif" size="2">$<b><font color="#ff0000">
<input type="text" name="amt_fees_escrowagnt" size="5">
</font></b></font></td>
</tr>
<tr>
<td width="17%">&nbsp;</td>
<td width="33%">
<input type="submit" name="Submit" value="Submit">
</td>
<td width="14%">&nbsp;</td>
<td width="36%">&nbsp;</td>
</tr>
</table>
</form>

</body>
</html>

sstevens
11-21-2002, 02:17 PM
I'm not sure if I'm doing what you needed to be done, but I think I did. I couldn't figure out how to do it with radio buttons, but if they are just yes/no, why not just have a checkbox marked yes? Then they can choose yes/no through that. Here is the code (very simple and ugly in a browser), I'll also upload a text file.

------------------------------------
<html>
<head>
<script type="text/javascript">
function validate()
{
x=document.myform
chk=x.check.checked
txt=x.textf.value
if (chk)
{
if (txt)
{
return true
}
else
{
alert("You must enter text")
return false
}
}
}
</script>
</head>
<body>
<form name="myform" action="test.htm" onsubmit="return validate()">
<input type="checkbox" name="check">Yes<BR>
If yes, enter a value:
<input type="text" name="textf">
<input type="submit" value="Send input">
</form>
</body>
</html>
---------------------------------

Hope this helps!

Zach Elfers
11-21-2002, 02:22 PM
You can change the value of another field (If this is what you want!) by clicking a radio button.

<input type="radio" name="radioset" onClick="form.otherField.value = 'whatever';">

I am not sure if that is exactly what you want, but I hope it helps!:)

rush4th
05-15-2007, 06:35 AM
Figured it out.