Мне нужно отключить/включить кнопку в зависимости от значения некоторых групп радио. Эти радиостанции заполнены каким-то четким кодом, потому что я использую grails, основу для groovy, которая является надмножеством java. Хорошо, что объяснение должно было сказать, что значения радиостанций определяются как булевы, что естественно, потому что они соответствуют да/нет ответам.Javascript booleans: false && true results in true
Теперь, чтобы отключить/включить эту кнопку, я использую некоторый javascript, но это бананы с булевыми значениями. Как видно из названия государств, на какой-то момент я логичный и между переменной, которая содержит false
и другой переменной, которая содержит true
Вот peice проблемного кода:
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 == true? Обратите внимание, что значения не имеют кавычек, поэтому они являются логическими значениями (я отлаживаю консоль Chrome, которые представляют строки внутри двойных кавычек, поэтому вы можете различать true и «true»).
Любые идеи?
Кроме того, выполнение ручного сравнения, такого как var x = true && false
, всегда работает так, как ожидалось, это juts с переменными, что проблема присутствует.
Поскольку это явно очень странно, я думаю, уменьшить этот пример минимального теста будет полезно для вас. – zmccord
http://twitter.com/#!/mattmight/statuses/191964430312030208 В PHP и JavaScript «==» произносится как «вероятно равно». –