Конвертировать конкретное значение в форме, чтобы избежать 1,0 не равно 1 - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время я пытаюсь взять все изменения, внесенные в форму, и поместить ее в 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 Ответ

0 голосов
/ 12 февраля 2019

используйте $.isNumeric(), и если оба являются числовой проверкой, они равны как числа, используя parseFloat или parseInt для преобразования в числовое значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...