Fabric Thickness - Cascading Value

by chayacooper

HTML

<input name="Item" type="text"  />Item
<br/>
<input name="Fabric_Type" type="text" />Fabric_Type
<br/>
<input name="Lining" type="text" />Lining
<br/>
<input name="Fabric_Construction" type="text" />Fabric_Construction
<br/>
<input name="Fabric_Thickness_Bulk" type="text" />Fabric_Thickness_Bulk
<br/>

JavaScript

$(document).ready(function () {
    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 != "";
    }
    var fabricThicknessElement = $('[name=Fabric_Thickness_Bulk]');

    $('[name=Fabric_Thickness_Bulk]').val('2');
    
    $("[name=Fabric_Type],[name=Item],[name=Lining],[name=Fabric_Construction][name=Lining]").change(function () {
        if ($("[name=Fabric_Type]").val() === "Satin") {
            // Works currectly if only use 
            // if ( isThickerFabric()) {
            if ((isThickerFabric() && !hasLining()) || (!isThickerFabric() && hasLining())){
                fabricThicknessElement.val('2');
            } else if (isThickerFabric() && hasLining()) {
                fabricThicknessElement.val('3');
            } else {
                fabricThicknessElement.val('1');
            }
        } else {
            // If combination not defined
            $('[name=Fabric_Thickness_Bulk]').val('2');
        }
    });
});