zoukankan      html  css  js  c++  java
  • js事件处理函数中return的作用

    这里面的return含有一些细节知识:

    例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别

    JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。

    而该值决定了当前操作是否继续。
    当返回的是true时,将继续操作。
    当返回是false时,将中断操作。

    而直接执行时(不用return)。将不会对window.event.returnvalue进行设置
    所以会默认地继续执行操作

    返回 false 来阻止默认动作是所有浏览器都支持的这是事件处理程序的基本组成。如今的事件处理程序模型还添加了一些新的方法来阻止默认动作:

    • W3C 给事件添加了 preventDefalut() 方法。如果你引用了这个方法那么默认动作就会被阻止。
    • 微软给事件添加了 returnValue 属性。如果你设置他的值为 false 那么默认动作也会被阻止。

    详细说明如下:

    例如:
    当在 <a href="abc.htm" onclick="return add_onclick()">Open</a> 中
    如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm
    否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到 abc.htm除外

    )
    而 <a href="abc.htm" onclick="add_onclick()">Open</a>
    不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm

    另外补充:
    onclick事件时就相当于onclick="return true/false"
    例:
    function check()
    {
    if(obj.value=="" )
       {
         window.alert("不能为空!");
         obj.focus();
         return false;
       }
         return true;
    }

    调用方法返回true时才提交表单,反之则不提交,这是submit按钮
    ------------------------------------------------------------------------------------------

    调用js函数不需要return,但是表单却无法提交,所以在js函数中加上一句话
    例:
    <script language="javascript">
    function check()
    {
    if(obj.value=="" )
       {
         window.alert("不能为空!");
         obj.focus();
         return false;
       }
         document.myform.submit();
         return true;
    }
    </script>
    注:document.myform.submit();要在return true前

    关于javascript中的 return false和return true
    return 是javascript里函数返回值的关键字,
    一个函数内处理的结果可以使用return 返回,
    这样在调用函数的地方就可以用变量接收返回
    结果。return 关键字内任何类型的变量数据或表达式
    都可以进行返回,甚至什么都不返回也可以比如
    function NullReturn(IsNull)
    {
    if(IsNull==true)
    {
    return;
    }
    }
    这样写也是可以的,这里的意思是返回空(null)
    所以有的时候return 的作用就是用来终止函数执行。
    比如

    <html>
    <head>
    <title>return验证测试</title>
    <script language="javascript">
    function Login_Click()
    {
    if(document.form1.UsName.value=="")
    {
    alert('用户名为空');
    }
    if(document.form1.UsPwd.value=="")
    {
    alert('密码为空');
    }
    alert('登陆成功');
    }
    </script>
    </head>
    <body>
    <form name="form1">
    <input type="text" name="UsName" >用户名
    <input type="password" name="UsPwd">密码
    <input type="button" name="Login" onClick="Login_Click();" >登陆
    </form>
    </body>
    </html>

    不加return 的情况

    加return

    <html>
    <head>
    <title>return验证测试</title>
    <script language="javascript">
    function Login_Click()
    {
    if(document.form1.UsName.value=="")
    {
    alert('用户名为空');
    return;
    }
    if(document.form1.UsPwd.value=="")
    {
    alert('密码为空');
    return;
    }
    alert('登陆成功');
    }
    </script>
    </head>
    <body>
    <form name="form1">
    <input type="text" name="UsName" >用户名
    <input type="password" name="UsPwd">密码
    <input type="button" name="Login" onClick="Login_Click();" >登陆
    </form>
    </body>
    </html>

    运行就会发现加return 和不加return 的区别,

    最简单的测试办法,上面的两个例子什么都不输入直接登陆

    不加return的现象是先提示用户名没输入,然后提示密码没输入;加了return之后遇到一个没输入之后就不再继续检测

    return false表示返回一个false值,也就是说提交是不成功的,就是不会提交上去。
    return true表法返回一个true值,也就是提交了,不管你输入没有输入值,都会提交到action指定页面。

  • 相关阅读:
    UNIX时间戳/日期转换
    慎用date获取未来时间
    lnmp集成开发环境安装pdo_dblib扩展
    elementary OS下netbeans中文乱码的问题
    一个轻量级javascript框架的设计模式
    debian清空消息通知
    一道数组方面的笔试题
    模拟post提交
    P2970 [USACO09DEC]自私的放牧Selfish Grazing
    P1063 能量项链
  • 原文地址:https://www.cnblogs.com/answercard/p/5255230.html
Copyright © 2011-2022 走看看