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