Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Westi on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

form submitted despite JS errors 1

Status
Not open for further replies.

GoldPearl

Programmer
Aug 9, 2005
64
i have a form with controls in it which i validated using Javascript. when i enter erroeous data, it displays the error message but also submit the form with the erroneous data. i want it to display an error msg like "please enter correct data" instead.

code for form is as follows:


<script language="javascript">

function checkWholeForm()
{
var add = "";
add += textonly();
add += checkDropdown();
return true;
}

//function to check alphabetic (Department name)

function textonly()
{
var checkOK="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var checkstr;
var allValid=true;
var allNum= ""

if (frmdeptsmaint.txtdeptname.value == "")
{
alert("Compulsory Field. Department Name cannot be blank.");
frmdeptsmaint.txtdeptname.focus( );
return false;
}
else
{
checkstr=frmdeptsmaint.txtdeptname.value;
for(i=0; i<checkstr.length;i++)
{
ch= checkstr.charAt(i);
for(j = 0;j<checkOK.length;j++)
if( ch== checkOK.charAt(j))
break;
if (j ==checkOK.length)
{
allValid = false
break;
}
if(ch!=",")
allNum+=ch;
}
if (!allValid)
{
alert("Please specify a correct Department Name.");
frmdeptsmaint.txtdeptname.select();
valid=false;
}
}
return true;

}

function checkDropdown()
{
if (frmdeptsmaint.lstpos.value == 0)
{
alert ("You didn't choose an option from the drop-down list.");
}
return false;
}


</SCRIPT>

</head>

<body bgcolor="#525C6D" text="#FFFFFF" link="#FFFFFF" vlink="#66FFFF" alink="#66FFFF">
<p align="right"><font color="#FFFFFF" face="Arial"><strong><img src="images/home.gif" width="24" height="24">
<font size="2"><a href="role.asp">Home </a></font></strong></font><img src="images/logout.ico" width="24" height="24"><a href="logout.asp"><font size="2" face="Arial">Logout</font></a></p>
<p align="left"><font size="2" face="Arial">Welcome <%=userid1%> </font></p>
<p>
<%
If request("error")="1" Then
Response.Redirect "dupadddept.asp"

Else If request("success")="1" then
response.Redirect "adddeptok.asp"
End If
End If
%>
</p>
<div align="center">
<p><strong><font face="Arial"> Department Maintenance</font></strong></p>
<form name="frmdeptsmaint" method="post" action="dept.asp">

<div align="center">
<table width="33%" border="2" cellspacing="20" bordercolor="#FFFFFF" bgcolor="#CCCCCC">
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Department
ID:&nbsp;</font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<input name="txtdeptid" type="text" id="txtdeptid" size="20" value='<%=id%>'>
</font></td>
</tr>
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Department
Name: </font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<input name="txtdeptname" type="text" id="txtdeptname" size="20">
</font></td>
</tr>
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Position:&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<select name="lstpos" size="1" id="lstpos">
<option selected>Select a Position</option>
<%
do while not rspos.eof
%>
<option><%=rspos(0)%></option>
<%
rspos.movenext
loop
rspos.close
set rspos = nothing
cn.close
set cn = nothing
%>
</select>
</font></td>
</tr>
</table>
<p><font size="2" face="Arial">
<input name="btnadd" type="submit" id="btnadd" value="Add" onclick="checkWholeForm()">
<input name="btnview" type="submit" id="btnview" value="View">
</font></p>
</div>
</form>


code for ADD button:

Sub AddDept
dim rs
dim cn
dim sql
dim duplicate
dim namedept
dim iddept

namedept=request.Form("txtdeptname")
iddept=request.Form("txtdeptid")
duplicate=false

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open(Conn)

Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "department",cn,2,3

Do While Not (rs.eof OR duplicate)
If (StrComp(rs("deptName"),namedept,vbTextCompare)=0) OR (StrComp(rs("deptid"),iddept,vbTextCompare)=0)Then
duplicate=true
response.Redirect "deptsmaint.asp?error=1"
End If

rs.moveNext
Loop

If(duplicate = false) then
sql="INSERT INTO department (deptId, deptName, positionId) VALUES " & _
"( '" & Request.Form("txtdeptid") & "' , '" & Request.Form("txtdeptname") & "' ,'"& Request.Form("lstpos") & "' )"

cn.execute(sql)

Response.redirect "adddeptok.asp?success=1"

cn.close
set rs=nothing
set cn=nothing

End If

End Sub


Thks for helping me out urgently.

Gold pearl
 
here u r:

<script language="javascript">

function checkWholeForm()
{
return textonly() && checkDropdown();

}

//function to check alphabetic (Department name)

function textonly()
{
var checkOK="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var checkstr;
var allValid=true;


if (frmdeptsmaint.txtdeptname.value == "")
{
alert("Compulsory Field. Department Name cannot be blank.");
frmdeptsmaint.txtdeptname.focus( );
return false;
}
else
{
checkstr=frmdeptsmaint.txtdeptname.value;
for(i=0; i<checkstr.length;i++)
{
ch= checkstr.charAt(i);
for(j = 0;j<checkOK.length;j++)
if( ch== checkOK.charAt(j))
break;
if (j ==checkOK.length)
{
allValid = false
break;
}

}
if (!allValid)
{
alert("Please specify a correct Department Name.");
frmdeptsmaint.txtdeptname.select();
valid=false;
}
}
return true;
}

function checkDropdown()
{
if (frmdeptsmaint.lstpos.value == 0)
{
alert ("You didn't choose an option from the drop-down list.");
return false;
}
else
{
return true;
}
}

</SCRIPT>

</head>

<body bgcolor="#525C6D" text="#FFFFFF" link="#FFFFFF" vlink="#66FFFF" alink="#66FFFF">
<p align="right"><font color="#FFFFFF" face="Arial"><strong><img src="images/home.gif" width="24" height="24">
<font size="2"><a href="role.asp">Home </a></font></strong></font><img src="images/logout.ico" width="24" height="24"><a href="logout.asp"><font size="2" face="Arial">Logout</font></a></p>

<p>

</p>
<div align="center">
<p><strong><font face="Arial"> Department Maintenance</font></strong></p>
<form name="frmdeptsmaint" method="post" action="dept.asp">

<div align="center">
<table width="33%" border="2" cellspacing="20" bordercolor="#FFFFFF" bgcolor="#CCCCCC">
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Department
ID:&nbsp;</font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<input name="txtdeptid" type="text" id="txtdeptid" size="20" value='7'>
</font></td>
</tr>
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Department
Name: </font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<input name="txtdeptname" type="text" id="txtdeptname" size="20">
</font></td>
</tr>
<tr>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">Position:&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
<td bordercolor="#CCCCCC"><font color="#000000" size="2" face="Arial">
<select name="lstpos" size="1" id="lstpos">
<option selected>Select a Position</option>

<option value="Programmer">Programmer</option>

<option value="Senior Programmer">Senior Programmer</option>

<option value="Analyst Programmer">Analyst Programmer</option>

<option value="System Analyst">System Analyst</option>

<option value="Senior Systems Analyst">Senior Systems Analyst</option>

<option value="Manager">Manager</option>

<option value="Senior Manager">Senior Manager</option>

<option value="Partner">Partner</option>

</select>
</font></td>
</tr>
</table>
<p><font size="2" face="Arial">
<input name="btnadd" type="submit" id="btnadd" value="Add" onclick="return checkWholeForm()">
<input name="btnview" type="submit" id="btnview" value="View">
</font></p>
</div>
</form>
 
[1] Change this
>[tt]if (frmdeptsmaint.lstpos.value == 0)[/tt]
to this.
[tt]if (document.frmdeptsmaint.lstpos.selectedIndex == 0)[/tt]
[2] Also you still have to change
>[tt]valid=false;[/tt]
in the textonly validation to
[tt]return false;[/tt]
[3] For all reference to the form frmdeptsmaint..., it is better to put its parent in as document.frmdeptsmaint...


 
Phew! it works now...it always amaze me how sometimes a word can make a difference!

Thks Tsuji!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top