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