javascript的onclick问题,急...............................................

小飛不想飛 2014-06-13 09:37:55
看到项目中以前的代码这样写的:
<input type="submit" value="修改" onclick="return confirm("确定继续操作吗?");return check()1">

为什么我自己写的静态页面当return confirm返回true时却不能调用check1()

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<script type="text/javascript">

var sum = "";
function check1(){
if(sum!=""){
alert("只能点击一次");

return false;
}else{
alert("第一次点击");
}
sum="1";
}

</script>
</head>
<body>
<input type="submit" onclick="return confirm('继续吗?');return check1();">
</body>
</html>


我把前面的return去掉就能调用了,这是为什么,不能这样写吗?
...全文
150 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小飛不想飛 2014-06-13
  • 打赏
  • 举报
回复
引用 10 楼 jiangbai333 的回复:
9楼的问题! 你把return 去掉了  不管你点确认或者取消 都能调用check1 你说的没错,点确认是返回true  但是你没加条件语句  所以后面的check1 和你前面返回什么没有关系 相当于这样

function b() {
      confirm("确定继续操作吗?");
      return check1();
}
你加上return 执行完 confirm("确定继续操作吗?"); 就直接返回了 

function b() {
      return confirm("确定继续操作吗?");
      return check1(); //根本执行不到这里
}
但是如果加上条件语句 相当于这样

function b() {
  var flag = confirm("确定继续操作吗?");
      if(flag){  //如果点了确定
           return check1();
      } else {
          return;
     }
     // confirm("确定继续操作吗?")?check1():''           是if  else 的简写
}
OK,谢谢了,已经这样改了return confirm("确定继续操作吗?")?check1():false;
jiangbai333 2014-06-13
  • 打赏
  • 举报
回复
9楼的问题! 你把return 去掉了  不管你点确认或者取消 都能调用check1 你说的没错,点确认是返回true  但是你没加条件语句  所以后面的check1 和你前面返回什么没有关系 相当于这样

function b() {
      confirm("确定继续操作吗?");
      return check1();
}
你加上return 执行完 confirm("确定继续操作吗?"); 就直接返回了 

function b() {
      return confirm("确定继续操作吗?");
      return check1(); //根本执行不到这里
}
但是如果加上条件语句 相当于这样

function b() {
  var flag = confirm("确定继续操作吗?");
      if(flag){  //如果点了确定
           return check1();
      } else {
          return;
     }
     // confirm("确定继续操作吗?")?check1():''           是if  else 的简写
}
小飛不想飛 2014-06-13
  • 打赏
  • 举报
回复
引用 6 楼 jiangbai333 的回复:
[quote=引用 5 楼 xp447196763 的回复:] [quote=引用 2 楼 jiangbai333 的回复:] 注意return! 一但return了  函数就结束了! 后面的代码不会执行!
但是我return confirm返回的是true,还是不去执行check1吗?[/quote] 那你要这样

return confirm("确定继续操作吗?")?check1():'';
[/quote] 话是这样说,那我把第一个return去掉为什么能调用check1了,把第一个return去掉,confirm默认返回true,所有能调用,我加上return,当提示的时候我点击确定,应该返回的也是true啊,为什么不能调用了?
jiangbai333 2014-06-13
  • 打赏
  • 举报
回复
引用 7 楼 xp447196763 的回复:
[quote=引用 4 楼 jiangbai333 的回复:] [quote=引用 2 楼 jiangbai333 的回复:] 注意return! 一但return了  函数就结束了! 后面的代码不会执行!

function a() {
       var test1 = 1;
       var test2 = 2;
       alert(test1);
       return;
       alert(test2);
}
a(); //之会弹出一个框 里面显示1
[/quote] 这个我知道,我就是不明白如果我的return confirm返回true,为什么不去执行check1,是这样的写法不对吗?[/quote]

function check1() {
      alert(2);
}
/**
 * 正确写法
 */
function a() {
       return confirm("确定继续操作吗?")?check1():'';  
}

/**
 * 等价于你的写法
 */
function b() {
      return confirm("确定继续操作吗?");
      return check1();
}
a();
b();
小飛不想飛 2014-06-13
  • 打赏
  • 举报
回复
引用 4 楼 jiangbai333 的回复:
[quote=引用 2 楼 jiangbai333 的回复:] 注意return! 一但return了  函数就结束了! 后面的代码不会执行!

function a() {
       var test1 = 1;
       var test2 = 2;
       alert(test1);
       return;
       alert(test2);
}
a(); //之会弹出一个框 里面显示1
[/quote] 这个我知道,我就是不明白如果我的return confirm返回true,为什么不去执行check1,是这样的写法不对吗?
jiangbai333 2014-06-13
  • 打赏
  • 举报
回复
引用 5 楼 xp447196763 的回复:
[quote=引用 2 楼 jiangbai333 的回复:] 注意return! 一但return了  函数就结束了! 后面的代码不会执行!
但是我return confirm返回的是true,还是不去执行check1吗?[/quote] 那你要这样

return confirm("确定继续操作吗?")?check1():'';
小飛不想飛 2014-06-13
  • 打赏
  • 举报
回复
引用 2 楼 jiangbai333 的回复:
注意return! 一但return了  函数就结束了! 后面的代码不会执行!
但是我return confirm返回的是true,还是不去执行check1吗?
jiangbai333 2014-06-13
  • 打赏
  • 举报
回复
引用 2 楼 jiangbai333 的回复:
注意return! 一但return了  函数就结束了! 后面的代码不会执行!

function a() {
       var test1 = 1;
       var test2 = 2;
       alert(test1);
       return;
       alert(test2);
}
a(); //之会弹出一个框 里面显示1
KK3K2005 2014-06-13
  • 打赏
  • 举报
回复
return confirm("确定继续操作吗?")?check1():false
jiangbai333 2014-06-13
  • 打赏
  • 举报
回复
注意return! 一但return了  函数就结束了! 后面的代码不会执行!
猿敲月下码 2014-06-13
  • 打赏
  • 举报
回复
confirm()返回的是个布尔值,需要用if来判断的 function doConfirm(){ if(confirm('继续吗?')){ check1(); } } <input type="submit" onclick="return doConfirm();">

87,919

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧