“返回假”有什么作用
What does "return false;" do?
>我写了一个网页,用户可以在其中输入存储在数据库中的日志条目,然后使用ajax
检索并打印在页面上。我对ajax
仍然很陌生,想知道是否有人可以向我解释return false;
在我的代码末尾做什么?甚至有必要吗?
如果我把第二个ajax代码放在return false
之后,代码就不起作用了!你能给我解释一下为什么吗?
//handles submitting the form without reloading page
$('#FormSubmit').submit(function(e) {
//stores the input of today's data
var log_entry = $("#LogEntry").val();
// prevent the form from submitting normally
e.preventDefault();
$.ajax({
type: 'POST',
url: 'behind_curtains.php',
data: {
logentry: log_entry
},
success: function() {
alert(log_entry);
//clears textbox after submission
$('#LogEntry').val("");
//presents successs text and then fades it out
$("#entered-log-success").html("Your Entry has been entered.");
$("#entered-log-success").show().fadeOut(3000);
}
});
//prints new log entries on page upon submittion
$.ajax({
type: 'POST',
url: '/wp-content/themes/childOfFanwood/traininglog_behind_curtains.php',
data: {
log_entries_loop: "true"
},
success: function(data) {
alert(data);
$("#log-entry-container").html("");
$("#log-entry-container").html(data);
}
});
return false;
});
我在这里写的对于 jQuery 事件是正确的,
对于vanilla javascript事件,请阅读答案底部的@T.J. Crowder评论
回调中的return false
可防止默认行为。例如,在submit
事件中,它不会提交表单。
return false
也会停止冒泡,因此元素的父元素不会知道事件发生了。
return false
相当于event.preventDefault()
+event.stopPropagation()
当然,return xxx
行之后存在的所有代码都不会执行。(与我知道的所有编程语言一样)
也许你觉得这很有帮助:
停止事件冒泡 - 提高性能?
一个"真实"的演示来解释return false
和event.preventDefault()
之间的区别:
标记:
<div id="theDiv">
<form id="theForm" >
<input type="submit" value="submit"/>
</form>
</div>
JavaScript:
$('#theDiv').submit(function() {
alert('DIV!');
});
$('#theForm').submit(function(e) {
alert('FORM!');
e.preventDefault();
});
现在。。。当用户提交表单时,第一个处理程序是表单提交,preventDefault()
->不会提交表单,但事件会冒泡到div,触发它的提交处理程序。
现场演示
现在,如果表单提交的处理程序会取消冒泡return false
:
$('#theDiv').submit(function() {
alert('DIV!');
});
$('#theForm').submit(function(event) {
alert('FORM!');
return false;
// Or:
event.preventDefault();
event.stopPropagation();
});
div 甚至不知道有表单提交。
现场演示
return false
在原版javascript事件中做什么
从 DOM2 处理程序返回 false (
addEventListener
) 什么都不做(既不阻止默认值也不停止冒泡;从Microsoft DOM2 式处理程序 (attachEvent
),它阻止默认值但不冒泡; 从 DOM0 处理程序 (onclick="return ..."
),它阻止默认值(前提是您在属性中包含返回)但不冒泡; 来自 jQuery 事件处理程序, 它两者兼而有之,因为这是一个jQuery的东西。详细信息和现场测试在这里 – T.J. 克劳德
函数中return
语句之后的任何代码都将永远不会被执行。它停止执行函数并使该函数返回值传递(在本例中false
)。您的函数是"提交"事件回调。如果此回调返回false
,则表单实际上将不会提交。否则,它将像没有 JavaScript 一样提交。
在这种情况下,return false;
阻止默认操作(即表单提交)。
虽然使用e.preventDefault();
可能更好
因为Ajax,你不希望你的表单以正常方式提交。因此,您必须返回 false 以防止表单的默认行为。
return 语句结束函数执行这很重要。使用 return 会导致代码短路并立即停止执行,从而阻止下一行代码执行
- “$xml = $( xmlDoc )”有什么作用
- 发现这个讨厌的代码,我想知道它有什么作用?我应该担心吗..
- 这个图像加载功能有什么作用
- meteor / react - “readOnly”属性有什么作用
- “this”这个词在jQuery中有什么作用
- 金属特性在三.JS中有什么作用
- 像“apples: 5”这样的行在 JavaScript 中有什么作用
- 在 Function.prototype.method 中返回它有什么作用
- 本声明的结尾部分有什么作用
- JSHint 'nocomma' 选项有什么作用
- 这个示例 CKEditor JavaScript 函数有什么作用
- “返回假”有什么作用
- “返回$q.拒绝(响应)”有什么作用
- 文件 app.json 有什么作用
- 回调(false)和回调(true)有什么作用
- 下面的Javascript函数有什么作用
- 下面的 JavaScript 函数有什么作用,我可以用它来做什么
- Javascript:这个代码片段有什么作用和错误代码Uncatch TypeError:allEnemies.forE
- Facebook channelURL 和 appId 有什么作用
- “!” 字符在 nodejs 模块名称中有什么作用