javascript var limit,值不超过127

时间:2014-02-05 15:51:54

标签: javascript

我在下面的javascript代码中面临一个奇怪的问题。在页面中,在project_list数组中推送的值是project_id(值范围从1到150)和bid_amount(值范围从1到2000)。除了一件事,一切正常,每当project_id(从页面发送)的值大于127时,插入代码行project_id = project_list[i];的值为127.正如我检查的那样,var没有这么低的限制。此代码行bid_amount = parseFloat($("#bidAmount_"+project_list[i]).val());工作正常,很容易取值大于127.请帮助,我没有在任何地方声明shortint!

function bid_project_tournament(current_round)
{
    var i;
    var project_list= [];
    $('#B2WProjectList :checkbox:checked').each(function(i){
        project_list.push($(this).val());
    });

    $("#bid_project").attr("disabled","disabled");
    var project_id;
    var bid_amount;
    var bid_data="0";
    for(i=0;i<project_list.length;i++)
    {
        project_id = project_list[i];
        bid_amount = parseFloat($("#bidAmount_"+project_list[i]).val());
        bid_data = bid_data+";"+project_id+","+bid_amount;
    }
}

1 个答案:

答案 0 :(得分:0)

我们在评论中找到了这个特定问题的原因(类型为TINYINT而不是INT的列),但我会留下一个更一般的答案,以防人们来到这里类似的问题。

如果您发现数字在发送到服务器时被限制在某个2或2左右,那么问题就很可能出现在您的后端代码或数据库中。以下是一些要检查的事项:

  • 您是否不小心将数据库中的列设置为BYTETINYINTSMALLINT或类似而不是INT或更大?检查列定义!
  • 您是否将值传递给后端代码中的变量,该变量的类型为shortwordbyte或类似?
  • 如果值位于预先填写的HTML表单字段中,您是否检查过该HTML中的值是否正确?
  • 如果上述所有内容都已检出,请启动浏览器的调试工具并观看网络活动面板,以确认客户端上的值是否有上限。

HTML中的复选框值没有(合理)限制,或者实际上没有任何限制,例如maxmaxlength属性。您可以在不失精度的情况下在JavaScript中表示的最大数字是9,007,199,254,740,992,因此如果您的数字被限制或舍入高于该值,则问题可能是JavaScript。