'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');
}
}
});