我需要根据某些无线电组的值禁用/启用按钮。这些收音机由一些 groovy 代码填充,因为我使用的是 grails,一个 groovy 框架,它是 java 的超集。嗯,这个解释是说无线电的值被定义为布尔值,这是很自然的,因为它们对应于是/否的答案。
现在,为了禁用/启用这个按钮,我使用了一些 javascript,但它带有布尔值。false
正如标题所述,在某些时候,我在一个持有的变量和另一个持有的变量之间做了一个逻辑和true
这是有问题的代码的一部分:
var actual = true;
$('.requerido input:radio:checked').each(function() {
console.log("actual: " + actual);
console.log("value: " + this.value);
console.log("actual and value: " + (actual && this.value));
actual = actual && this.value;
console.log("actual: " + actual);
});
如您所见,我使用 console.log 进行调试,这就是在某些时候抛出的:
actual: true
value: true
actual and value: true
actual: true
actual: true
value: false
actual and value: false
actual: false
actual: false
value: true
actual and value: true
actual: true
所以 true && false == false,但是 false && true == true ?请注意,这些值没有引号,因此它们是布尔值(我正在使用 Chrome 控制台进行调试,它表示双引号内的字符串,因此您可以区分 true 和“true”)。
有任何想法吗?
此外,像总是按预期进行手动比较一样var x = true && false
,只是使用存在问题的变量。