js 非法字符检测代码

<body><scriptlanguage="javascript"><!--functioncontain(str,charset)//字符串包含测试函数{vari;f... <body>
<script language="javascript">
<!--
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}

function CheckForm()
{
if ((contain(document.form.NAME.value,"%\(\)><")) || (contain(document.form.MESSAGE.value,"%\(\)><")))
{
alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
//-->
</script>

<form id="form" name="form" method="POST" action="<%=MM_editAction%>">
<label>
<input type="text" name="contain" id="contain"/>
</label>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
<input type="hidden" name="MM_insert" value="form">
</form>
</body>

为什么我输入非法字符后还可以提交到数据库呢
展开
 我来答
fengzhu2007
2009-10-14 · TA获得超过470个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:228万
展开全部
注意:浏览器会禁止运行此脚本。你必须要让浏览可以运行脚本,才行。否则浏览器仍然会提交数据。其实我建议你用Ajax来保存数据,这样就不会出现上面的问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $website_title ?></title>
</head>
<body>
<script language="javascript">

function contain(str,charset)// 字符串包含测试函数
{
var i;

for(i=0;i<charset.length;i++)

if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}

function CheckForm()
{

var oContain = document.getElementById("contain");

if(contain(oContain.value,"%\(\)><")){
alert("输入了非法字符");
return false;
}else{
return true;
// alert("true");
}
// if ((contain(document.form.NAME.value,"%\(\)><")) || (contain(document.form.MESSAGE.value,"%\(\)><")))
// {
//
// alert("输入了非法字符");
// document.form.NAME.focus();
// return false;
// }else{
// alert("dddd");
// return true;
// }

}

</script>

<form id="form" name="form" onsubmit='if(CheckForm())return true;else return false;' method="POST" action="<%=MM_editAction%>">
<label>
<input type="text" id="contain" name="contain" id="contain"/>
</label>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
<input type="hidden" name="MM_insert" value="form">
</form>
</body>
skingyang
2009-10-14 · TA获得超过586个赞
知道小有建树答主
回答量:767
采纳率:60%
帮助的人:325万
展开全部
你的form表单不论怎样都会action到你的逻辑里,你写的那些非法字符检测应该在form表单提交时调用,即:onSubmit="return 你的方法",同时你的方法返回true和false,返回false说明不要提交,即含有非法字符,否则相反。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式