日期:2014-05-17  浏览次数:20758 次

刷新问题:
在同一个网页内增加数据,第一次按提交按钮,接着按IE的刷新又增加同样一条记录了!刷新不要增加记录的话,怎么处理呢?
if   request.form( "uid ") <> " "   and   request.form( "bodys ") <> " "   then
  sqla= "insert   into   message(username,body,ip,addtime)   values( ' "&uid& " ', ' "&bodys& " ', ' "&ip& " ', ' "&addtime& " ') "
conn.execute(sqla)
end   if    

是不是下面代码错误了呢?不填东西也没反应!!!
<script   language= "JavaScript ">
<!--
function   validate(theform)   {
if   (theform.uid.value== " "   ||   theform.bodys.value== " ")   {
alert( "姓名和留言是必须填写的! ");
clckcnt=0;
return   false;   }
-->
</script>
<form   name= "form "   method= "post "   onsubmit= "return   validate(this) "   action= " "> 。。 </form>  
   


------解决方案--------------------
这是asp的一个刷新问题,很多人通过这个方法来往你数据库中提交垃圾的内容,是应该修改一下程序,在你提交成功后把页面转回去,用response.redirect( "index.asp ")的方法,这样那个表单里的内容都为空了,他提交也提交不上去了.你的javascript语句有问题,所以别人提交的时候不提示,下面是我的程序.看看...


function check()
{
if (document.submitform.name.value.length <2)
{
alert ( "请输入您的名字! ");
submitform.name.focus();
return false;
}
if (!(isEmail(document.submitform.email.value )))
{
alert( "请正确输入您的EMAIL地址! ");
submitform.email.focus();
return false;
}
}


<form name= "form " method= "post " onsubmit= "return check(); " action= "add.asp "> ... </form>
------解决方案--------------------
function isEmail(vEMail)
{
var regInvalid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
var regValid=/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
return (!regInvalid.test(vEMail)&&regValid.test(vEMail));
}
function check()
{
if (document.submitform.name.value.length <2)
{
alert ( "请输入您的名字! ");
submitform.name.focus();
return false;
}
if (!(isEmail(document.submitform.email.value )))
{
alert( "请正确输入您的EMAIL地址! ");
submitform.email.focus();
return false;
}
if (document.submitform.companyname.value.length <2)
{
alert ( "请输入你的公司名称! ");
submitform.companyname.focus();
return false;
}
}
------解决方案--------------------
提交以后response.redirect

一般论坛都采用的这种方式.
------解决方案--------------------
楼上的,跳转
JS有可能表单或者其它名字写错了
------解决方案--------------------