我无法让该'var hasLining'
功能正常工作。它应该返回“0”或“1”,这取决于是否有衬里。我不知道为什么,但它导致函数总是返回错误的答案(我不确定到底发生了什么,但看起来它正在为下一个方程提供值)。
我发布了一个小提琴来证明这个问题:jsfiddle.net/chayacooper/9NKjT/1
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');
}
}
});