Javascript 停止函数的执行?
在提交时,我会这样做:Javascript 停止函数的执行?,javascript,jquery,Javascript,Jquery,在提交时,我会这样做: $('#add-form').submit(function(e){ e.preventDefault(); if($('input[name=published]').is(':checked')) p.validateImgs(); //stop if p.validateImgs returns false 验证Imgs功能: p.validateImgs = function() { //Check Thumb var
$('#add-form').submit(function(e){
e.preventDefault();
if($('input[name=published]').is(':checked')) p.validateImgs();
//stop if p.validateImgs returns false
验证Imgs功能:
p.validateImgs = function() {
//Check Thumb
var thumb = $('#thumb li .img-drop-zone');
if(!thumb.has('img').length)thumb.addClass('error');
//Check Galery
var gallery = $('#gallery li .img-drop-zone').first();
if(!gallery.has('img').length)gallery.addClass('error');
//return true/false
};
如果validateImgs返回false,提交脚本将停止,我该怎么做呢?因为
e.preventDefault()
阻止表单提交,如何
$('#add-form').submit(function(e){
if($('input[name=published]').is(':checked') && !p.validateImgs())
e.preventDefault();
});
如果要退出函数,请使用Jonathan提到的
return
。您可以提前退出函数
因为它是有条件的,所以将它放在带有p.validateImgs()
的if
下作为条件的一部分:
if($('input[name=published]').is(':checked') && !p.validateImgs())
return;
在validateImgs中,返回true或false,并在提交函数中捕获响应。例如
$('#add-form').submit(function(e){
e.preventDefault();
if($('input[name=published]').is(':checked'))
{
response = p.validateImgs();
// if any error
if(!response)
return false; // stop function
}
我将使用Johan的代码,但只需添加一点修改:
$('#add-form').submit(function(e){
if($('input[name=published]').is(':checked') && !p.validateImgs()) {
e.preventDefault();
return false;
}
});
请注意y添加的“返回错误”,以防万一