search

Home  >  Q&A  >  body text

javascript - onsubmit="return check();"和onsubmit="check();"有什么区别?

<form name="Form" action="t" method="post" onsubmit="return check();">

如果这句没有return有什么不同?

巴扎黑巴扎黑2818 days ago1419

reply all(5)I'll reply

  • 怪我咯

    怪我咯2017-04-10 17:26:02

    表单是否提交取决于onsubmit事件的返回值。
    若onsubmit事件返回false,则将阻止表单的提交。
    如果不返回值,则默认为true。

    onsubmit="return false;" 将无论何时都阻止表单的提交
    onsubmit="return check();" 是否提交表单取决于check()的返回值
    onsubmit="check();" check()的返回值无影响


    其他大多数事件也可以这样使用。
    例如:
    <input type="text" onkeypress="return false;" />将使该输入框无法输入字符`
    <input type="button" onclick="return false;" />将使该按钮的点击无效`

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 17:26:02

    onsubmit="return check();"

    是你在点击提交时,把check()整个函数作为返回赋值给onsubmit

    onsubmit="check();"

    是你在点击提交时,执行check()这个函数

    这两个很不一样

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 17:26:02

    check(){return false;}

    一般情况下都一样,返回false就有区别了。

    reply
    0
  • 阿神

    阿神2017-04-10 17:26:02

    其实作用是相同的

    var onsubmit = function(){
        return check();
    }
    onsubmit();//相当于点击
    
    var onsubmit2 = function(){
        check();
    }
    onsubmit2();
    
    function check(){
        console.log("i'm checked");
        return "check";
    }

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:26:02

     <form onsubmit="check()"></form>
      <form onsubmit="return check()"></form>
      <script>
      var forms = document.querySelectorAll('form');
      console.log(forms[0].onsubmit)
      console.log(forms[1].onsubmit)

    看看输出的是什么,表单事件只有显式的return false时才会阻止提交

    reply
    0
  • Cancelreply