Jquery 在此函数中返回一个元素的正确值时遇到问题

Jquery 在此函数中返回一个元素的正确值时遇到问题,jquery,get,set,Jquery,Get,Set,我在使'var hasling'函数正常工作时遇到问题。它应该返回“0”或“1”,这取决于是否有衬里。我不知道为什么,但这会导致函数总是返回错误的答案(我不确定到底发生了什么,但看起来它给出了下一个等式的值) 我贴了一张小提琴来演示这个问题: var hasLining函数检查[name=Lining]是否有值“0”,当[name=Lining]字段为空或除0以外的任何值时,它总是返回true,当其值为0时,它将返回false 这就是为什么它总是得到fabritchicknesselement3

我在使
'var hasling'
函数正常工作时遇到问题。它应该返回“0”或“1”,这取决于是否有衬里。我不知道为什么,但这会导致函数总是返回错误的答案(我不确定到底发生了什么,但看起来它给出了下一个等式的值)

我贴了一张小提琴来演示这个问题:


var hasLining
函数检查
[name=Lining]
是否有值“0”,当
[name=Lining]
字段为空或除0以外的任何值时,它总是返回true,当其值为0时,它将返回false

这就是为什么它总是得到
fabritchicknesselement
3的值,因为它总是得到一个真正的形式
var hasling

如果你想在衬里是否为空的基础上得到结果。更改
var hasLining

返回衬里!=“”

并将条件更改为


如果((isThickerFabric()&&&!hasLining())| |(!isThickerFabric()&&hasLining())

您没有设置“衬里”文本的值。这很有效:-D您介意向我解释一下您使用的“返回衬里”格式吗!=“”,以便我知道如何将其应用于其他情况?
var isThickerFabric = function() {
  var item = $("[name=Item]").val();
  return item == "Blazer" || item == "Jacket" || item == "Outerwear";
}
var hasLining = function() {
  var lining = $("[name=Lining]").val();
  return lining != "0";
}

$("[name=Item],[name=Fabric_Type],[name=Lining]").change(function(){  
  if ( $("[name=Fabric_Type]").val() === "Satin" ) {
    var fabricThicknessElement = $('[name=Fabric_Thickness]');

    if ( isThickerFabric() && !hasLining || !isThickerFabric() && hasLining ) {
      fabricThicknessElement.val('2');
    } else if ( isThickerFabric() && hasLining() ) {
      fabricThicknessElement.val('3');
    } else {
      fabricThicknessElement.val('1');
    }
  }    
});