Using objects and forms
Lets see what JavaScript can do to support forms through an example. If you recall, we have seen a simplified version of the CIS-L subscription form previously. Lets expand in that example today. You can see here the final product of enhancing the CIS-L form with JavaScript.
How were all these functions coded?
<HTML>
<HEAD>
<TITLE>Subscribe CIS-L</TITLE>
<script language="JavaScript">
<!-- to hide script contents from old browsers
function test1(form) {
if (form.userName.value.length >= 3) {
return true}
else {
{
alert("Please enter your name!"); return false }
}
}
function test2(form) {
if ((form.addr.value.indexOf("@") != "-1") && (form.addr.value.length >= 9)) {
return true}
else {
alert("Not a valid e-mail address!"); return false }
}
function thanks(form) {
if ((form.addr.value.indexOf("@") != "-1") && (form.addr.value.length >= 9)) {
window.open ('thanks.html')}
else {
alert("Cannot subscribe without a valid e-mail address!")
}
}
// end hiding contents from old browsers -->
</script>
</HEAD>
<body bgcolor="Silver" onLoad="alert('You are looking at the ' + document.forms[0] + ' form!')">
<H2><IMG ALIGN=top SRC="ball_pin.gif"> Subscribe here to CIS-L</H2><HR>
Please provide your full name, e-mail address and affiliation (the place you work for, or are a student at).
<FORM NAME="subscribe" METHOD=POST ACTION = mailto:abento@ubalt.edu" onSubmit="return test2(this)">
<P>
Please, enter your name:
<INPUT TYPE= "text" NAME="userName" onBlur="test1(this.form)" >
<P>
and your e-mail address:
<INPUT TYPE= "text" NAME="addr" onBlur="test2(this.form)">
<P>
Please enter the organization you are affiliated with:
<INPUT TYPE= "text" NAME="org" SIZE= 70>
<P>
Please select one of the following if you are a student:
<P>
<INPUT TYPE="radio" NAME="stud" VALUE="Undergraduate">Undergraduate
<INPUT TYPE="radio" NAME="stud" VALUE="MBAMSstudent">MBA or MS student
<INPUT TYPE="radio" NAME="stud" VALUE="Ph.D.student">Ph.D. student
<P>
<INPUT TYPE="submit" VALUE="Subscribe" onClick="thanks(this.form)">
<INPUT TYPE="reset" VALUE="Start again">
<P>
Thanks for subscribing, and welcome to CIS-L!
</FORM>
/BODY>
/HTML>