火狐浏览器 对于js内部的 return false 不响应
functioncheckSubmit(){if(document.addcontent.action.value=="add"){///////////////////...
function checkSubmit(){
if(document.addcontent.action.value=="add"){
///////////////////////////////////////////////////////////////
/*检查当前要发布的文章在本站的相似度*/
$.ajaxSetup (
{
async: false
});
var result="false";
$.post("get_arc_like.php",{"check_like":1},function(msg){
var data = eval('(' + msg + ')');
var check_result=data['0'];
if(check_result=="true"){
result="true";
}else{
alert("不能发布!");
document.addcontent.body.focus();
result="false";
}
});
if(result=="true"){
alert("恭喜!可以发表!");
}else{
return false;//针对这个checksubmit()函数
}
///////////////////////////////////////////////////////////////
}
}
上面的这个检查提交表单的代码 Google IE 360都支持,到火狐的时候虽然提醒不能发布,但是点击确定后,竟然发布了【希望各位师兄指点,谢谢】 展开
if(document.addcontent.action.value=="add"){
///////////////////////////////////////////////////////////////
/*检查当前要发布的文章在本站的相似度*/
$.ajaxSetup (
{
async: false
});
var result="false";
$.post("get_arc_like.php",{"check_like":1},function(msg){
var data = eval('(' + msg + ')');
var check_result=data['0'];
if(check_result=="true"){
result="true";
}else{
alert("不能发布!");
document.addcontent.body.focus();
result="false";
}
});
if(result=="true"){
alert("恭喜!可以发表!");
}else{
return false;//针对这个checksubmit()函数
}
///////////////////////////////////////////////////////////////
}
}
上面的这个检查提交表单的代码 Google IE 360都支持,到火狐的时候虽然提醒不能发布,但是点击确定后,竟然发布了【希望各位师兄指点,谢谢】 展开
展开全部
您好!很高兴为您答疑。
通常的做法就是监听form的submit事件,验证通过就return true,反之就return false。可是,return false在firefox下是无效的,表单仍然会被提交。解决办法就是使用event对象的preventDefault方法来阻止事件继续发生,注意,这个方法ie是不支持的。
function check(e) {
//............验证代码...............
if (e && e.preventDefault) {
//..........FF会走这里..............
e.preventDefault();
}
//..........IE会走这里..............
return false;
}
如果对我们的回答存在任何疑问,欢迎继续问询。
通常的做法就是监听form的submit事件,验证通过就return true,反之就return false。可是,return false在firefox下是无效的,表单仍然会被提交。解决办法就是使用event对象的preventDefault方法来阻止事件继续发生,注意,这个方法ie是不支持的。
function check(e) {
//............验证代码...............
if (e && e.preventDefault) {
//..........FF会走这里..............
e.preventDefault();
}
//..........IE会走这里..............
return false;
}
如果对我们的回答存在任何疑问,欢迎继续问询。
追问
这个我尝试了不行 仍然感谢你
展开全部
你可以直接返回boolean型的true和false试试。
追问
我在
if(document.addcontent.action.value=="add"){这个判断的}前加了
return false;,但是仍然没有停止,按照道理说,这个应该不能提交才对,但是提醒不能发布后仍然成功提交,因为这个checksubmit中还有其他if,并且其他if都能正常遇到return false;停止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额 。我只想说这个Ajax是异步的 他走这个$.post的时候 不会等他返回数据才往下走的,他是直接往下走,也就是说post没执行完 ,他已经执行完这个方法了 ,我在形象点描述吧
如果刚运行到这里的事件是 1
$.post("get_arc_like.php",{"check_like":1},function(msg){
//请求成功后的时间可能是 3可能是1.5 等等
var data = eval('(' + msg + ')');
var check_result=data['0'];
if(check_result=="true"){
result="true";
}else{
alert("不能发布!");
document.addcontent.body.focus();
result="false";
}
});
//执行到这里的时候 是2
if(result=="true"){
alert("恭喜!可以发表!");
}else{
return false;//针对这个checksubmit()函数
}
//所以啊 你懂的
还需要说明的是
$.ajaxSetup (
{
async: false
});
这个不会去设置$.post $.post是$.ajax post 异步的简写
如果你想用同步 用$.ajax
如果刚运行到这里的事件是 1
$.post("get_arc_like.php",{"check_like":1},function(msg){
//请求成功后的时间可能是 3可能是1.5 等等
var data = eval('(' + msg + ')');
var check_result=data['0'];
if(check_result=="true"){
result="true";
}else{
alert("不能发布!");
document.addcontent.body.focus();
result="false";
}
});
//执行到这里的时候 是2
if(result=="true"){
alert("恭喜!可以发表!");
}else{
return false;//针对这个checksubmit()函数
}
//所以啊 你懂的
还需要说明的是
$.ajaxSetup (
{
async: false
});
这个不会去设置$.post $.post是$.ajax post 异步的简写
如果你想用同步 用$.ajax
更多追问追答
追问
这个同步的设置方法是我昨天百度上问的,也测试了这样设置的确是同步的,并且在GOOG ie 360这三个浏览器中的的确确是按照同步的方式运行的,提日不可以发表的时候也是及时停止的。这样设置后,是会等他运行并且返回值后,才一步一步向下执行,这个是对的。这样写唯一出问题的就是火狐浏览器
追答
那你的表单onsubmit是怎么写的
这样写 onsubmit='checkSubmit()' 这个写 在IE 当有效 火狐无效
还是 onsubmit='return checkSubmit()' 这个都支持
我猜你是不是 用的第一个?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询