1

私はJavaScriptの専門家ではないので、誰かが私を助けてくれることを願っています.

私は次のコードを持っていますが、何らかの理由で常にステートメントが真であると考えています

delvNum=document.getElementById("deliveryNum").value;
delvQTY=document.getElementById("delvQTY"+id).value;
orderQTY=document.getElementById("orderQTY"+id).value;

if (delvQTY>orderQTY)
{
  alert("Can't deliver more than " + orderQTY + ", you are trying to deliver " + delvQTY + ". Please fix!");
  document.getElementById("delvQTY"+id).focus();
  return;
}

エラー メッセージには各 var の数量が表示され、正しく渡されています。

4

4 に答える 4

2

数値ではなく文字列を比較しています。

parseIntまたはparseFloatを使用する

if (parseFloat(delvQTY)>parseFloat(orderQTY))

また

if (parseInt(delvQTY,10)>parseInt(orderQTY,10))
于 2013-04-05T16:51:27.730 に答える
1

数値の比較ではなく、文字列の比較を行っています。たとえば、"9">"1111"is true.

値を解析する必要があります:

if (parseFloat(delvQTY)>parseFloat(orderQTY)) 

parseFloatを参照してください。

于 2013-04-05T16:51:19.807 に答える
1

比較を行う前にdelvQTY、 とorderQTYを確認する必要があります。Number>

var delvValue = parseInt(delvQTY, 10);整数への変換用。

または浮動小数点数の場合:var delvValue = parseFloat(delvQTY);

于 2013-04-05T16:51:30.627 に答える