JS Validation conundrum

Hi,

I’m having trouble getting a particular validation script to function correctly. I need to validate whether either a textfield ‘partner name’ is filled in or a checkbox ‘no partner’ is checked. I tried with the script below but this only seems to validate the partner name textfiled. When the ‘no partner’ textbox is checked it comes up with the alert saying neither the checkbox or textfield is filled in. Can anyone help?

Javascript…

<script type="text/javascript">
function validate_email(field,alerttxt)
{
with (field)
  {
  apos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (apos<1||dotpos-apos<2)
    {alert(alerttxt);return false;}
  else {return true;}
  }
}

function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==null||value=="")
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}

function validate_date(field,alerttxt)
{
with (field)
  {
  if (value=="na")
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}

function validate_form(thisform)
{
with (thisform)
  {
if ((validate_required(partner,"Partner field must be fully filled out *or* no partner checked!")==false)||(validate_required(nopartner,"Partner field must be filled out *or* no partner checked!")==false))
 {partner.focus();return false;}
  }
}
</script>

Form html …

Partner Name:<input type="text" name="partner" />
No Partner:<input type="checkbox" name="nopartner">

Thanks!

Maybe this will help some:


<form method="post">
	Partner Name:<input type="text" name="partner" />
	No Partner:<input type="checkbox" name="nopartner" />
	<input type="submit" value="Submit" />
</form>
<script type="text/javascript">
	window.onload = function() {
		var frm = document.forms[0];

		frm.onsubmit = function() {
			if( frm.partner.value !== '' || frm.nopartner.checked === true ) {
				alert('Validating');		
				return false;
			} else {
				alert('You missed something...');
			}
		};
	};
</script>

Many thanks for your help on this. :slight_smile:

I finally figured it out with this…

 else if((partner.value == '')&&(nopartner.checked == false))
	 {   alert('Partner Name must be filled in *or* No Partner must be checked');  return false;}