onSubmit="check()"和onSubmit="return check()",为什么要加上return?。

结论:onSubmit是用来验证表单数据的合法性的,onSubmit="check()"没有用,onSubmit="return check()"有用。

 

我们在写form的时候,往往需要确认数据的合法性。

比如用户名称合不合法?邮箱格式正不正确?

如果不正确的话,数据就不要发送了。

所以我们就会用到form标签的onSubmit属性,通过让onSubmit="check()"来阻止不合法的数据被发送

这里的check()是一个验证数据合法性的函数,数据不合法check返回false,onSubmit就是false,不就可以了吗?

这样乍一看好像很对,实际操作却是,即使不合法,数据还是会被发送

 

为什么呢?

 

首先,查看文档就会发现,onSubmit属性就相当于form标签里的一个函数名,onSubmit的value就是onSubmit这个“函数”里的内置函数,而onSubmit这个“函数”默认返回值是true。

就像这样:

function onSubmit()

{

      check();

      return true;

}

 这样我们就很清晰地看到,即使check()的返回值是false,onSubmit的返回值也是true,数据还是会被提交。

 

所以,我们应该使用onSubmit="return check()",这样onSubmit的返回值就不会是默认的true,而是check()的返回值了。

function onSubmit()

{

      return check();

}

  

posted @ 2020-06-07 13:05  Syuao  阅读(1021)  评论(0编辑  收藏  举报