【Web前端问题】onsubmit="return check();"和onsubmit="check();"有什么区别?

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

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

回答:

表单是否提交取决于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;" />将使该按钮的点击无效`

回答:

onsubmit="return check();"

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

onsubmit="check();"

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

这两个很不一样

回答:

check(){return false;}

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

回答:

其实作用是相同的

var onsubmit = function(){

return check();

}

onsubmit();//相当于点击

var onsubmit2 = function(){

check();

}

onsubmit2();

function check(){

console.log("i'm checked");

return "check";

}

clipboard.png

回答:

 <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时才会阻止提交

回答:

onsubmit事件支持所有浏览器。
onsubmit事件支持且仅支持form标签。

按正常的理解来说,该事件是发生在submit事件触发,但是执行action之前这中间。但是它的使用上有一个小坑。

  • onsubmit="alert('xxx')"

  • onsubmit="true/false"

  • onsubmit="return true/false"

如果在onsubmit中只是简单的执行类似alert()函数,无返回或者返回无关紧要的情况下,这个坑无所谓。
当你执行类似登录验证,或者其他有可能因为条件不足而取消action事件的时候,第二个使用形式会在chrome和firefox中表现异常,设置的false不能正确的终止提交,就是这么个小坑。IE是正常的。这个时候换成第三种形式的就好了,这个区别问题的导致是因为ie内核不支持某些内容。
在有判断的情况下加上onsubmit="return xxx"中的return,因为它具有更广泛的适用性。

以上是 【Web前端问题】onsubmit=&quot;return check();&quot;和onsubmit=&quot;check();&quot;有什么区别? 的全部内容, 来源链接: utcz.com/a/141469.html

回到顶部