我是jQuery的新手,我在表单上写了一些验证逻辑.在这个精彩的社区的帮助下,我能够理解如何发布我的表格.ajax()并防止回发.
我正在使用button.click()事件来执行此操作,我知道何时需要保持表单的发布我必须放置return false;并且我理解为什么.例如:
var name = $("input#name").val();
if (name == "")
{
$("label#lblName").css('color','red');
$("input#name").focus();
return false;
}
Run Code Online (Sandbox Code Playgroud)
我理解为什么在这种情况下返回false非常重要.但是在我的提交按钮单击事件的最后,还有一个返回false,如下所示:
$(function()
{
$("#submitbutton").click(function()
{
//validate and submit form
return false; //WHY is this here? What purpose does it serve?
});
});
Run Code Online (Sandbox Code Playgroud)
我问的原因是我还在编写一个函数来将.blur()上的标签颜色更改回白色.像这样:
$(function()
{
$("input#name").blur(function()
{
var name = $("input#name").val();
if (name == '')
{
$("label#lblName").css('color','red');
}
else
{
$("label#lblName").css('color','');
}
//Do I need return false here? and why?
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
return false用于jQuery事件回调以停止事件传播或事件冒泡.
如果此元素的事件链中有多个回调,则表示false将调用超过返回的事件的所有事件.
这在您发布的情况下非常有用.默认情况下,提交按钮具有附加事件,该事件将提交其包含的表单.绑定到此提交按钮的click事件时,使用return false将阻止任何先前注册的事件发生 - 因此click将调用您的自定义事件并且不会提交表单.
在大多数情况下,您不需要包含return false.只有当你认为事件链中可能有另一个处理程序可以接收你正在处理的事件并且以某种方式混淆你的代码时,才有必要.
额外的信息: