为什么我在html里面写的javascript无法阻止表单的重复提交?

<html><head><title>LoginHtml.html</title><metahttp-equiv="keywords"content="keyword1,... <html>
<head>
<title>LoginHtml.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

<script type="text/javascript">
var falg=false;
function dosubmit(){
if(!falg){
falg=true;
return false;
}else{
return false;
}
}
</script>

</head>

<body>
<form action="/web7/login" method="post" onsubmit="return dosubmit()">
密码:<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
哪位帮我看看有什么问题?
展开
 我来答
啊_科
2013-05-12 · TA获得超过268个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:128万
展开全部
因为你提交后,页面是需要刷新的,所以得重新加载一遍.你的flag 并没有保存,你可以保存到cookies里,下次提交时先从cookies里看有没有flag这个变量,如果有的话,拿出来再做判断。
lai1362000
推荐于2016-01-31 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:160万
展开全部
如果是想在提交表单正在进行的时候禁止再次提交,你的可以在dosubmit()里把按钮给禁用掉。如果你的是想在提交后不想让用户再次提交(同时是在HTML页面限制),那建议你使用 jquery.cookie 进行判断。

如果是你的代码没有出现你的预计的,你的可以试一下把dosubmit()放在 submit 按钮上的onclick 上页面,在dosubmit() 添加 form.submit().
追问
嗯,谢谢。我试了,上面那个代码是正确的。刚开始我写错了点,后来改成上面那样,但我刷新后,还是运行的我之前那个错误版本,所以我误以为上面的正确代码有错误。后来我在浏览器里把cookie和历史记录清空后再运行就能阻止重复提交了。可能就是缓存的原因吧。但是很奇怪,我在servelt加了禁止缓存的代码,它为什么还是缓存呀,当我更改了这个h我每次运行之前都要清空缓存和历史记录才能得到最新的版本,能解释吗
追答
HTML网页缓存方法
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<META HTTP-EQUIV="expires" CONTENT="0">
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lauka
2013-05-13 · 超过13用户采纳过TA的回答
知道答主
回答量:57
采纳率:100%
帮助的人:24.1万
展开全部
onsubmit="dosubmit()"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式