Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-尝试在if语句中执行函数_Javascript_Jquery_Function_If Statement - Fatal编程技术网

Javascript jQuery-尝试在if语句中执行函数

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函数,它正是我想要的:

      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接受的答案已更正,因此忽略上面的评论。