如果Textbox的值为0,则jQuery复选框为true;如果Textbox为空,则为false



我有这个函数,如果文本框的值为0,则复选框将设置为true。但我有一个奇怪的场景,如果文本框为空或大于0,我需要复选框为假

当我调试为true时,这似乎是"和0是一回事有人知道我会怎么做吗?

$(document).on('blur change keyup', '.CostInput', function () {
if ($(this).val() == 0) {
$('input#Enquiry_Cost_InputFree_0').prop('checked', true);
}
if ($(this).val() > 0 || "") {
$('input#Enquiry_Cost_InputFree_0').prop('checked', false);
}
});

我创建了一个JS fiddle=https://jsfiddle.net/barrycorrigan/Lqxuvr4w/9/

JavaScript中的=====之间存在差异。

0 == ""  // => true
0 === "" // => false

你可能是想说:

$(document).on('blur change keyup', '.CostInput', function () {
let val = $(this).val();
if (+val === 0) {
$('input#Enquiry_Cost_InputFree_0').prop('checked', true);
}
if (+val > 0 || val === "") {
$('input#Enquiry_Cost_InputFree_0').prop('checked', false);
}
});

有关其工作方式的更多信息,请参阅此处:https://stackoverflow.com/a/359509/9741277

最新更新