如果文本框的值为 0,则 jQuery Checkbox 为真,但如果文本框为空白,则为假 [重复]
Posted
技术标签:
【中文标题】如果文本框的值为 0,则 jQuery Checkbox 为真,但如果文本框为空白,则为假 [重复]【英文标题】:jQuery Checkbox is true if Textbox has value of 0 but false if the Textbox is blank [duplicate] 【发布时间】:2021-01-07 16:45:34 【问题描述】:我有这个功能,如果文本框的值为 0,复选框将设置为 true。 但是我有这种奇怪的情况,如果文本框为空白或大于 0,我需要复选框为 false
当我调试 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/
【问题讨论】:
嗯,==
和 ===
... ***.com/a/523647/9741277 之间是有区别的
在你的表情上有一个exe:$(this).val() > 0 || ""
你可能是想说:$(this).val() > 0 || $(this).val() === ""
【参考方案1】:
==
和 ===
在 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://***.com/a/359509/9741277
【讨论】:
感谢@leun4m 的更新,但从您在文本框中的示例中,如果我输入值 0,它不会将复选框填充为 true 哦,对不起我的错误。没有测试它。由于文本框包含string
的值,如果将其与数值进行比较,则需要将其转换为 number
类型。使用+val
应该是安全的——即使val
不是数字,因为NaN === 0
和NaN > 0
将始终返回false。
干杯这比我的解决方案要好得多
以上是关于如果文本框的值为 0,则 jQuery Checkbox 为真,但如果文本框为空白,则为假 [重复]的主要内容,如果未能解决你的问题,请参考以下文章