提交时,我这样做:
$('#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,如何提交,提交脚本会停止吗?
答案 0 :(得分:2)
由于e.preventDefault()
阻止表单提交,如何
$('#add-form').submit(function(e){
if($('input[name=published]').is(':checked') && !p.validateImgs())
e.preventDefault();
});
如果您想退出该功能,请使用return
作为Jonathan提及的内容。
答案 1 :(得分:0)
您可以使用return
statement提前退出function
。
由于它是有条件的,因此将if
放在p.validateImgs()
下作为条件的一部分:
if($('input[name=published]').is(':checked') && !p.validateImgs())
return;
答案 2 :(得分:0)
在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
}
答案 3 :(得分:0)
我会使用Johan的代码,但只需添加一些修改:
$('#add-form').submit(function(e){
if($('input[name=published]').is(':checked') && !p.validateImgs()) {
e.preventDefault();
return false;
}
});
请注意"返回false"你补充说,只是要小心