Javascript jQuery-尝试在if语句中执行函数
我正在尝试向表单添加一些验证。我有一个jQuery函数,它正是我想要的:Javascript jQuery-尝试在if语句中执行函数,javascript,jquery,function,if-statement,Javascript,Jquery,Function,If Statement,我正在尝试向表单添加一些验证。我有一个jQuery函数,它正是我想要的: jQuery('#post').submit(function() { if (jQuery("#set-post-thumbnail").find('img').size() > 0) { jQuery('#ajax-loading').hide(); jQuery('#publish').r
jQuery('#post').submit(function() {
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
}
return false;
});
但是,我想更改它,使此函数仅在选中页面其他位置的单选按钮时运行。所以我试了一下:
if (jQuery('#top').checked) {
jQuery('#post').submit(function() {
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
}
return false;
});
}
这不起作用-即使选中了#top,函数也不会被调用。有人能解释为什么吗?我习惯于PHP,JavaScript经常向我抛出曲线球。firebug或Chrome控制台告诉你什么?您可以尝试以下方法:
$('#top').is(':checked')
如(感谢RET):
firebug或Chrome控制台告诉您什么?您可以尝试以下方法:
$('#top').is(':checked')
如(感谢RET):
试一试
$('#top')。是(':checked')
但是函数submit只绑定函数并在每次单击submit时调用它。
因此,您必须将选中的复选框放入submit函数中
jQuery('#post').submit(function() {
if(!$('top').is(':checked')){ return };
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
});
试一试
$('#top')。是(':checked')
但是函数submit只绑定函数并在每次单击submit时调用它。
因此,您必须将选中的复选框放入submit函数中
jQuery('#post').submit(function() {
if(!$('top').is(':checked')){ return };
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
});
是的,这种逻辑不太符合你的期望。尝试以下方法:
jQuery('#post').submit(function() {
if ($('#top').is(':checked')) {
// all your existing code
我可能错了,但我认为@greener给出的答案行不通,因为只有在页面创建时选中了
#top
时,才会声明提交函数。是的,这种逻辑不会达到您的期望。尝试以下方法:
jQuery('#post').submit(function() {
if ($('#top').is(':checked')) {
// all your existing code
我可能错了,但我认为@greener给出的答案行不通,因为只有在页面创建时选中了
#top
时,才会声明提交函数。因为if语句返回,您不需要在else语句
和returnfalse
twiceIt中包装下一节,它仍然没有做任何事情。。。Firebug也没有给我任何错误或任何东西。啊哈!这确实解决了问题!我不得不用jQuery替换$(这是一个WordPress网站,WordPress对此非常挑剔)。非常感谢,雷特、罗伊和格林!由于if语句
返回,您不需要在else语句
和returnfalse
twiceIt中包装下一节,它仍然没有做任何事情。。。Firebug也没有给我任何错误或任何东西。啊哈!这确实解决了问题!我不得不用jQuery替换$(这是一个WordPress网站,WordPress对此非常挑剔)。非常感谢,雷特、罗伊和格林!@greener接受的答案已更正,因此忽略上面的评论。@greener接受的答案已更正,因此忽略上面的评论。