为什么我的javascript验证没有进行就直接跳转了 去了上面的所有this就OK了不知道你在这里用这个this干嘛用的!~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language="JavaScript" type="text/javascript"> <!-- function checkform(fm) { if(fm.username.value.length==0) { alert("请输入您的用户名!"); fm.username.focus(); return false; } if(fm.password.value.length==0) {window.alert"请输入您的密码!"; fm.password.focus(); return false; } return true; } //--></script><form action="chekadmin.asp" method="post" target="_self" onsubmit="return checkform(this)">==============使用以上代码覆盖你发出的部分即可。 传了this进去,却又不用。document.form.username.value.length这样引用的话,根本不需要传值进去的。既然传了个对象进去,就要obj.username.value这样来引用了。还有,注意this为关键字,代表自己的意思,return checkform(this)你在调用的时候,这样写代表传把这个表单本身做为一个对象传进去,而函数内写的时候,就不要用this了,否则代表的是函数本身,产生歧义了。 同意楼上的观点,要么就不用this,要么一定使用。这样莫能两可的使用,绝对是不正确的!出问题,这个是当然的了 定义函数的时候不要用this,并且你调用alert时忘记写括号了。<script language="JavaScript" type="text/javascript"> <!-- function checkform() //这不要this,调用的时候也不需要,否则就按楼上某位的写。 { if(document.form.username.value.length==0) { alert("请输入您的用户名!"); document.form.username.focus(); return false; } if(document.form.password.value.length==0) {//这里少了括号window.alert("请输入您的密码!"); document.form.password.focus(); return false; } return true; } --></script> 问题是onsubmit="return checkform(this)">提交时发生事件,不管事件如何,还是会提交的这样的问题都是用一个普通的按钮来替代SUBMIT按钮,在其onclick事件中调用验证JS,在JS末尾再调用FORM的SUBMIT方法. onsubmit="checkform(this);return false;">这样就可以 了,不用把submit按钮替换成普通按钮 checkform函数里如果验证通过再加一句 fm.submit();用来替换函数里的return true; 楼上的两位理解有误。onsubmit返回false时是不提交的,返回true时会发生提交。 <script language="JavaScript" type="text/javascript"> <!-- function checkform(this) { if(document.form.username.value.length==0) { alert("请输入您的用户名!"); document.form.username.focus(); //return false; } if(document.form.password.value.length==0) {window.alert"请输入您的密码!"; document.form.password.focus(); //return false; } fm.submit(); } --></script><form action="chekadmin.asp" method="post" name="form" target="_self" id="form" onsubmit="checkform(this);return false;"> function checkform(this) 错了,这里改成function checkform(fm) 楼上的正解。JS关键子不能作为变量(无论是形参还是实参。)另就是可以听听ShadowSniper(欲练神功...(摘自《葵花宝典》)) 的意见。有function checkform(frm)效果执行要好些。 把两个 this 都去掉就OK了^^^呵呵 求实现控件激活另一个控件的js代码 jquery 处理json对象map Extjs示例中的静态加载如何换为动态加载? 关于reload()函数的问题 请大家帮忙! JS表单验证初级问题!请高手多帮帮美女哦! 为了debug我需要把一些参数显示在page上,请问应该怎样做? [求救]应用树型菜单问题 在线等待!!!急!!! 如何实现网页的定时重定向? 有人知道一豪工作室现在在哪里吗? 简单问题,求一个表格内的所有文本框的数值和 退出页面的问题?
<!--
function checkform(fm)
{
if(fm.username.value.length==0)
{
alert("请输入您的用户名!");
fm.username.focus();
return false;
}
if(fm.password.value.length==0)
{window.alert"请输入您的密码!";
fm.password.focus();
return false;
}
return true;
} //-->
</script>
<form action="chekadmin.asp" method="post" target="_self" onsubmit="return checkform(this)">==============
使用以上代码覆盖你发出的部分即可。
document.form.username.value.length这样引用的话,根本不需要传值进去的。
既然传了个对象进去,就要obj.username.value这样来引用了。还有,注意this为关键字,代表自己的意思,return checkform(this)你在调用的时候,这样写代表传把这个表单本身做为一个对象传进去,而函数内写的时候,就不要用this了,否则代表的是函数本身,产生歧义了。
<script language="JavaScript" type="text/javascript">
<!--
function checkform() //这不要this,调用的时候也不需要,否则就按楼上某位的写。
{
if(document.form.username.value.length==0)
{
alert("请输入您的用户名!");
document.form.username.focus();
return false;
}
if(document.form.password.value.length==0)
{
//这里少了括号
window.alert("请输入您的密码!");
document.form.password.focus();
return false;
}
return true;
} -->
</script>
onsubmit="return checkform(this)">提交时发生事件,不管事件如何,还是会提交的这样的问题都是用一个普通的按钮来替代SUBMIT按钮,在其onclick事件中调用验证JS,在JS末尾再调用FORM的SUBMIT方法.
<!--
function checkform(this)
{
if(document.form.username.value.length==0)
{
alert("请输入您的用户名!");
document.form.username.focus();
//return false;
}
if(document.form.password.value.length==0)
{window.alert"请输入您的密码!";
document.form.password.focus();
//return false;
}
fm.submit();
} -->
</script>
<form action="chekadmin.asp" method="post" name="form" target="_self" id="form" onsubmit="checkform(this);return false;">
另就是可以听听ShadowSniper(欲练神功...(摘自《葵花宝典》)) 的意见。
有function checkform(frm)效果执行要好些。
呵呵