如果 (function() === false) {执行此操作}。

3

我正在尝试解决这个问题,但我对JavaScript相对较新,因此:

函数termos()返回一个true或false的结果;

可能解决这个问题很简单,但我无法想到。这可以实现吗?我只是为了举例说明我的疑问写了这段代码。

function termos() {
  if($('.terms').is(':checked')) {
    return true;
  } else {
    return false;
  }
}

我可以使用

} else if(termos() === false) {
  alert('please agree with terms');
  return false;
}

这行代码不起作用


即使您进行了编辑,但仍没有真正解释您遇到的问题是什么。 - Jon Taylor
现在已经编辑好了,请阅读。 - Souza
3
你真的需要好好排版你的代码,朋友。 - vinnybad
2
你在 please agree with terms 上缺少一个闭合引号。 - Michael Berkowski
1
如果这是“危险边缘”,那会很有趣,但我们更喜欢在回答之前先提出问题。 - Philippe Leybaert
显示剩余7条评论
3个回答

20

据我所了解,您想要查看termos()函数是否返回true或false,并且在它返回false的情况下执行一些代码块。

您可以使用“假值/真值评估”(http://11heavens.com/falsy-and-truthy-in-javascript)。

因此,您可以这样写:

if ( termos() ) {
  // when its true
} else {
 // when its false
}

由于这个回答解决了Souza的评论 - Peter-Paul van Gemerden
如果 (termos()){ true } else { false } 无论什么情况下都会返回true。 - Souza
@Souza:你确定 termos() 函数会返回 false 吗?你尝试过使用 console.log()(或者 alert())输出它的结果吗? - Peter-Paul van Gemerden

1

由于您正在使用类来设置jQuery对象,如果有多个具有该类的项目,则会产生冲突结果。根据您的问题缺乏细节,我假设可能是这种情况。

设置复选框的id,以便您可以正确选择元素。此外,最好设置父容器,以便jQuery不搜索整个DOM。

此外,您可以像这样简化代码:

function termos(){
  return $('#Agree',"#ParentContainer").is(':checked');
}


if(!termos()){
  alert('please agree with terms');
}

1

这解决了我的问题。感谢那些尝试帮助我的人。

function termos(){
        if ($('.checky3').is(':checked')){
            return 1;
        }
    }

if (termos() !== 1){
        $('.checky3').css('border','solid 1px red');
        return false;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接