html 防止表单内容重复到数据库 求助大佬们看看我这样写对吗?为什么不起作用?

<head><script>varisCommitted=false;//表单是否已经提交标识,默认为falsefunctiondosubmit(){if(isCommi... <head>
<script> var isCommitted = false;//表单是否已经提交标识,默认为false
function dosubmit(){
if(isCommitted==false){
isCommitted = true;//提交表单后,将表单是否已经提交标识设置为true
return true;//返回true让表单正常提交
}else{
return false;//返回false那么表单将不提交
}
}</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CCTV</title>
</head>
<style>
#header {
background-color:white;
color:black;
text-align:center;
padding:200px;
</style>
<body>
<div id="header">
<form name="" action="002.asp" method="POST">
test:<input name="name" type="text" autofocus="autofocus" style="width:500px;height:35px" maxlength="50"><br>
</form>
</div>
</body>
</html>
展开
 我来答
网海1书生
科技发烧友

2019-04-12 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26231

向TA提问 私信TA
展开全部

表单提交后,页面会刷新,而刷新后,网页就是新的了,之前设置的isCommitted的值又会重新初始化为false,所以你这样做是无效的。

要想防止表单数据重复写到数据库,首先要想到的解决途径应该是从后台程序(比如你这的002.asp)入手,只有后台程序把表单提交上来的数据与数据库的现有数据进行比较后再来决定是否写入数据库,这才是万无一失的解决之道。

如果一定要在前端来解决这个问题,那就要把isCommitted的值保存到本地(内存或硬盘),页面刷新后再把这个值读取出来,这样就知道表单是否已经提交过了。出于安全考虑,浏览器允许js程序读写的本地资源只有cookie或者localStorage,具体用法你自己百度

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式