我在下面的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;
}
}
答案 0 :(得分:0)
我们在评论中找到了这个特定问题的原因(类型为TINYINT
而不是INT
的列),但我会留下一个更一般的答案,以防人们来到这里类似的问题。
如果您发现数字在发送到服务器时被限制在某个2或2左右,那么问题就很可能出现在您的后端代码或数据库中。以下是一些要检查的事项:
BYTE
,TINYINT
,SMALLINT
或类似而不是INT
或更大?检查列定义!short
,word
,byte
或类似? HTML中的复选框值没有(合理)限制,或者实际上没有任何限制,例如max
或maxlength
属性。您可以在不失精度的情况下在JavaScript中表示的最大数字是9,007,199,254,740,992,因此如果您的数字被限制或舍入高于该值,则问题可能是JavaScript。