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

Javascript 如果Textbox的值为0,则jQuery复选框为true;如果Textbox为空,则jQuery复选框为false,javascript,jquery,Javascript,Jquery,我有这个函数,如果文本框的值为0,则复选框将设置为true。 但我有一个奇怪的场景,如果文本框为空或大于0,我需要复选框为false 当我调试true时,这似乎是“”,而0是相同的 有人知道我该怎么做吗 $(document).on('blur change keyup', '.CostInput', function () { if ($(this).val() == 0) { $('input#Enquiry_Cost_InputFree_0').prop('checked',

我有这个函数,如果文本框的值为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=

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

0==“”/=>true
0==“”/=>false
你可能想说:

$(document).on('blur change keyup','.CostInput',函数(){
设val=$(this.val();
如果(+val==0){
$('input#查询(成本)免费输入(0')。prop('checked',true);
}
如果(+val>0 | | val==“”){
$('input#询价(成本)免费输入(0')。prop('checked',false);
}
});

有关其工作原理的更多信息,请参见此处:

嗯,
=
==
之间存在差异。。。在表达式上有一个exe:
$(this).val()>0 | |“”
您可能想说:
$(this).val()>0 | |$(this).val()===“”
感谢@leun4m的更新,但是从文本框中的示例来看,如果我输入值0,它不会将复选框填充为true哦,对不起,我的错误。没有测试它。由于文本框包含的值为
string
,如果将其与数值进行比较,则需要将其转换为
number
类型。使用
+val
应该是安全的——即使
val
不是一个数字,因为
NaN==0
NaN>0
总是会返回false。这比我的解决方案要好得多,我的解决方案是在第一个if语句周围加上“0”,这很有效,但我想它可能有问题