我正在制作一张可编辑的RPG表。对于这个特定的部分,我需要它将1_7,2_7和3_7与等式的结果进行比较,并让它选择较小的值。但是,虽然它适用于大多数情况,但它不会将0识别为值。手动输入1_7,2_7和3_7。
为了让代码将0识别为值,我该怎么做?
var x =
this.getField("1_7").value;
var y =
this.getField("2_7").value;
var z =
this.getField("3_7").value;
var f = Math.floor((this.getField("Des Temp").value - 10) / 2);
var temp;
if(!x)
{
x = f;
}
if(!y)
{
y = f;
}
if(!z)
{
z = f;
}
if(x <= y && x <= z)
temp = x;
else if(y <= z)
temp = y;
else
temp = z;
if(f > temp)
f = temp;
if(f > 0){
event.value = "+" + f;
}
else{
event.value = f;
}
答案 0 :(得分:1)
O是一个“假”值,所以
if(!x)
正在做它应该做的事情。空值可能是一个空字符串,因此您可以执行
if ( ! x.length )
代替。
$('#x').on( 'input', function() {
console.log( ! $(this).val().length );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='x' >
答案 1 :(得分:0)
因为0
在javascript比较中被视为false
。如果要验证字段是否包含数据,可以使用length
属性。
var x = 0;
var y = 5;
var z = 3;
var f = 10;
if(0)
{
console.log("0 is false");
}
if(1)
{
console.log("1 or any number != 0 is true");
}
if(x.length)
{
x = f;
console.log("x is not set");
}
if(y.length)
{
y = f;
console.log("y is not set");
}
if(y.length)
{
z = f;
console.log("z is not set");
}
&#13;