下面的代碼塊在用戶向數量,價格和支付字段輸入數字後向服務器詢問調整後的帳戶餘額。將--10
添加到字段會在服務器上引發錯誤。這就是爲什麼我添加了NaN支票adjustment === adjustment
。這種方式只應在調整金額爲數字時才發送請求。由於某種原因,我仍然得到奇怪的東西被髮送到服務器像--10
...NaN的Javascript測試
本質上,我只需要發送請求時,它實際上是一個數字。
var quantity = $("#id_quantity").val();
var price = $("#id_price").val();
var payment = $("#id_payment_amount").val();
var adjustment = quantity * price - payment;
// Don't send if Not a number (NaN).
if (adjustment === adjustment) {
$.get("/balance_after_adjustment", {amount: adjustment}, function(response) {
$("span").text(response);
});
}
'isNaN() ':https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN,和'Number.isNaN()':https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN – Ian
您將以字符串形式獲取值,然後對其執行數學計算。我建議使用'parseFloat'或'parseInt'分別解析每個項目,這樣你就可以在對它們進行任何計算之前先獲得好數字。 –
不過,別忘了在服務器端測試'amount'。否則一些「黑客」可能會克服Javascript檢查。 – Alex