问题描述
我目前正在尝试对表单进行所有更改,并将其放入JSON。 如果没有更改,则JSON为空。 该表单包含的值包括字符串,整数和浮点数。 因此,我不能将它们全部转换为特定类型。
在我遇到console.log语句batchsize:string 1.0 does not equal string 1
的结果之前,这不是问题。
显然,这是正确的,因为两个字符串不相等,但是我很难找到一种方法来比较它们而不会出现问题。
有人有建议吗
function getChanges()
{
//Get All User made changes form the website
var returnJSON = "{ ";
$('#form *').filter(' input:not([type="submit"])').each(function(){
var current = this.value;
var original = this.getAttribute('value')
var id = $(this).attr('id');
if((id!=="prod")&&(id!=="prodamt")&&(id!=="subtotal")&&(id!=="matlamt")&&(id!=="tax")&&(id!=="total")&&(id!=="matl")&&(id!=="prod-detail-formula-price")&&(id!=="prod-detail-formula-taxable")) //this ones for you zoe
if(current !== original)
{
returnJSON += '"'+id+'" : { "original":"'+original+'", "modified":"'+current+'"},';
console.log(id+":"+typeof original+ original +" does not equal " +typeof current+current);
}
});
returnJSON = returnJSON.substr(0, returnJSON.length-1);
returnJSON += '}';
return returnJSON;
}
1楼
使用$.isNumeric()
,如果两者都是数字,请检查它们是否等于数字,使用parseFloat
或parseInt
转换为数字