javascript retrun false之后,页面仍然被提交了。
一般在提交之前,都会将页面上数据是否合法有效的检查都放在javascript中的函数来做。然后,在asp.net中将button与javascript关联起来。我的做法如下:
Button1.Attributes.Add( "OnClick ", "javascript:return CheckValidate(); ");
脚本内容:
function CheckValidate(){
var code = document.all( "txtCode ").value;
if (code== " ")
{
alert( "请输入!! ");
return false;
}
return true;
}
安装了flashget1.8之后,我发现虽然脚本函数已经return false,但是后台事件仍然被触发。如何避免?如何解决?
通过设置form的onsubmit事件是一个办法,网络上也有文章推荐这个方法。
但问题是如果页面有两个作用不同的button,button1需要脚本校验,button2不需要脚本校验又如何区别处理呢?
[解决办法]
Button1.Attributes.Add( "OnClick ", "javascript:return false(); ");会不会提交?如果会的话。只能在 <Form onsubmit中写了。判断是哪个按纽:function Onsumbmit() {alert(document.activeElement.id); }
[解决办法]
不过这样写要累死人。
[解决办法]
没看明白和 flashget1.8 有什么关系
[解决办法]
WEB不太熟不你可以:
Button1.Attributes.Add( "onclick ", "return CheckValidate() ");
以前也有大小的,主要是Server控件。
[解决办法]
如果是asp:Button的会,会提交,你可以看看生成后的HTML代码,会有两个onclick脚本函数,而且你自定义的会在后面!要么你开发自定义的Button控件,要么就使用LinkButton解决!
[解决办法]
在onsubmit事件中检查就是需要判断是不是你想校验的button点击提交的页面,很麻烦。=======只能通过按纽的id来判断了。document.activeElement.id
[解决办法]
应该是试试:
Button1.Attributes.Add( "OnClick ", "javascript:return false; ");
不是false()
[解决办法]
修改一下
function CheckValidate(){
var code = document.all( "txtCode ").value;
if (code== " ")
{
alert( "请输入!! ");
event.returnValue = false;
}
}
[解决办法]
顶一下
[解决办法]
function CheckValidate(){
var code = document.getElementById( "txtCode ").value;
if (code== " ")
{
alert( "请输入!! ");
return false;
}
else
{
return true;
}
}
[解决办法]
脚本内容:
function CheckValidate(){
var code = document.all( "txtCode ").value;
if (code== " ")
{
alert( "请输入!! ");
return false;
}
return true;
}
把你的脚本里面的return true;去掉应该就行了!
[解决办法]
会不会和IE的配置有关系?
[解决办法]
那么就是说你使用CheckValidate这个函数的时候,那个alert警告出来了吗?
如果没有出来,说明在IE中可能把脚本禁用了
------解决方案--------------------
再加一个return false,你试试,应该可以了
Button1.Attributes.Add( "OnClick ", "javascript:return CheckValidate();return false ");
[解决办法]
Button1.Attributes.Add( "OnClick ", "return CheckValidate(); ");
脚本内容:
function CheckValidate(){
with (document.all)
{
var code=item( "txtCode ").value;
if (code== " ")
{
alert( "请输入!! ");
item( "txtCode ").focus();
return false;
}
}
}
====================================================================
俺刚测了一下,这样写是不会提交的!!!!
[解决办法]
添加一个js变量,在单击
Button1.Attributes.Add( "OnClick ", "setvar( 'bbb '); ");
Button1.Attributes.Add( "Onsubmit ", "return CheckValidate(); ");
脚本内容:
var state= " ";
function CheckValidate(){
if(state== 'bbb '){
alert( '单击了按钮Button1 ');
return false;}
else{
alert( '不是Button1 ');
return false;
}
[解决办法]
不好意思,上面写错了一个,现更正一下
添加一个js变量,在单击
Button1.Attributes.Add( "OnClick ", "setvar( 'bbb '); ");
Forms1.Attributes.Add( "Onsubmit ", "return CheckValidate(); "); //此处用窗体名,是添加Form的onsubmit事件,试试,我想应该行的,我以前就这么干的
脚本内容:
var state= " ";
function CheckValidate(){
if(state== 'bbb '){
alert( '单击了按钮Button1 ');
return false;}
else{
alert( '不是Button1 ');
return false;
}
[解决办法]
碰到这种情况,我一般先检查 js 脚本是否有错误。
而这种情况,十有八九都是 js 脚本错误造成的。由于 js 脚本的错误,而没有“ return false;”
[解决办法]
这个跟flashget有关系么?怀疑是别的地方javascript脚本出错了,而导致校验的js失效了。。。
asp:Button 标签被解析为 <input type= "submit " ... > Html标签,
event.returnValue = false 是可以阻止 form 被提交的。
如果说 event.returnValue = false 无效, 那么你在onsubmit事件中如何阻止提交?
在onsubmit事件处理方法中还不是仍然要 return false 或者 event.returnValue = false 么。。。
[解决办法]
mark