狼牙山索道门票多少钱:脚本进行输入判断后,不能返回原来的位置

来源:百度文库 编辑:高考问答 时间:2024/04/29 07:03:01
判断完成后,网页自己刷新成新的了,还要重新填一遍,而不是定位到名字的文本框,并且全选.谁知道怎么回事.别人的都是填错了,自己返回到错的地方.
<%
if username<>"" then
set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("qq.mdb")
Set Rs = Server.CreateObject("ADODB.RecordSet")
Sql="Select * From wardata"
Rs.Open Sql,Conn,2,3
Rs.AddNew
Rs("username")=username
Rs.Update
Rs.Close
Set Rs = Nothing
conn.Close

response.redirect "userview.asp"
end if
Set conn = Nothing
%>

<SCRIPT LANGUAGE="JavaScript">

function check() {
if(form1.username.value.indexOf("?")!=-1)
{
window.alert("名字里含有非法字符!");
form1.username.focus();
form1.username.select();
return false;
}
else
{
return true;
}

}
</SCRIPT>
前边少了一句
username=request("username")

你前面的ASP代码是没错。
但你说在前台提交后经过JS判断,网页就自动刷新成新的了,这时候有两种况:
一、网页判断的时候出错,而导致没经过正常的判断就提交了,而你的ASP代码里有:response.redirect "userview.asp"(不知是否就是当前页面的文件名?),所以就把网页刷新成新的了。。。
二、以下代码,稍做修改,不知道能否解决你的状况:

<SCRIPT LANGUAGE="JavaScript">
function check()
{
if(document.form1.username.value.indexOf("?")!=-1)
{
window.alert("名字里含有非法字符!");
//document.form1.username.focus(); 注释掉这行
document.form1.username.select();
//以上两句一句是获得焦点,一句是选择文本框内的值,而其实只要执行select()就行了,文本框就会获得焦点了,故我注释掉上面一行。
return false;
}
return true;
}
</SCRIPT>

另外,检查一下你提交表单时的动作中是否是确定调用的check()过程来做判断。(比如在submit里加onclick="return check();",或者在form 里加onsubmit="return check();")

记得在check()前要加上return 哦。因为你的check()有返回布尔值