parseInt(x,10)导致最大callstack /太多递归错误

Mar*_*ark 1 javascript recursion jquery

我有一个简单的JS函数,它根据2个输入值更新隐藏的文本框.

在我更新隐藏文本框之前,我使用parseInt(x,10)来验证输入是否为数字,如果不是,我将值设置为0.

为什么这会导致过多的递归错误?

  $(function () {
        $("#payment-form").on("submit",function (e) {

            var xDollars = $("#dollars").val();
            var xCents = $("#cents").val();
            //collect our form dollar and cents values, set to 0 if not int
            if (parseInt(xDollars, 10) == "NaN") {
                $("#dollars").val("0");
            }
            if (parseInt(xCents, 10) == "NaN") {
                $("#cents").val("00");
            }

            //join dollars and cents and submit transaction amount
            $("#TransactionAmount").val(xDollars + "." + xCents);
            $("#payment-form").submit();
            return true;
        });
    });
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 7

这不是parseInt()导致你的问题,就是这样:

        $("#payment-form").submit();
Run Code Online (Sandbox Code Playgroud)

您正在从"提交"处理程序中触发"提交"操作.

如果true验证成功则返回,表单应正常提交.