如果文本框的值为 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 === 0NaN > 0 将始终返回false。 干杯这比我的解决方案要好得多

以上是关于如果文本框的值为 0,则 jQuery Checkbox 为真,但如果文本框为空白,则为假 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改文本框的值,与另一个具有比率的文本框值相比

如果为空白或为空,如何将文本框的值设置为“0”?

如何用Jquery获取到文本框的值然后局部刷新

jquery监控两个文本输入框内容,如果有改变就需要重新执行加法运算

使用其属性之一设置文本框的值(jQuery)

如果带有文本框的单元格的函数值