0

在用户在数量、价格和付款字段中输入数字后,下面的代码块会要求服务器提供调整后的帐户余额。添加--10到字段会在服务器上引发错误。这就是我添加 NaN 检查的原因adjustment === adjustment。这样,它应该只在调整量是数字时才发送请求。但出于某种原因,我仍然收到奇怪的东西被发送到服务器,比如--10......

本质上,我只需要在它实际上是一个数字时发送请求。

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

2 回答 2

1

我可能会尝试这样的事情

var quantity = parseInt($("#id_quantity").val(),10),
 price = parseInt($("#id_price").val(),10),
 payment = parseInt($("#id_payment_amount").val(),10),
 adjustment = quantity * price - payment;
if (!isNaN(adjustment)) {
    $.get("/balance_after_adjustment", {amount: adjustment}, function(response) {
        $("span").text(response);
    });
}
于 2013-10-08T19:54:17.443 回答
-1

+在语句之前放一个,这样方法返回的字符串val将被转换为整数

var quantity = +$("#id_quantity").val(),
    price = +$("#id_price").val(),
    payment = +$("#id_payment_amount").val();
于 2013-10-08T20:02:19.407 回答