我有一张由ajax提交的表格。在提交之前,有一个函数可以在提交之前检查表单中的textarea是否为空。如果它是空的,我需要停止脚本并显示一个模态框并阻止提交数据以继续。
如何停止执行?我使用
吗?break;
答案 0 :(得分:25)
不,您通常使用return;
当然,具体细节将根据您的实施情况而有所不同。例如,您可能需要return false;
并手动检查返回值以查看是否继续在调用函数中执行脚本。
答案 1 :(得分:3)
试试这个:
$('#target').submit(function() {
alert('Handler for .submit() called.');
return false;
});
答案 2 :(得分:1)
您可以使用break;
,但如果这样做,则无法检查返回值(请使用return;
或return $bool;
)。
我认为像这样的结构会这样做:
.submit(function ()
{
if (verifyInput())
{
// continue
}
else
{
// show user there is something wrong
}
});
在这种情况下, verifyInput()
将返回一个布尔值,当然,表示表单是否正确填充。
答案 3 :(得分:1)
虽然返回功能足以阻止默认的提交操作,但我建议调用event.preventDefault()。只需要首先调用它来阻止用户代理默认处理该eventType。这可以说是更现代的做法。
这当然假设你有一个对事件的引用,只要你为它提供一个参数,它就是你的处理函数或你的EventListener对象的handleEvent方法的第一个参数。
它只是工具箱中的另一个工具,它与event.stopPropagation很好地配对,因为当你不想停止默认但只想停止事件分发时。