2015-07-07 6 views
0

У меня есть этот код, чтобы сравнить два значения для проверки они идентичны:Как игнорировать два значения нуля или неназначения в jQuery?

$(document).on("blur", "[id$=boxSection5Total]", function (e) { 
    var totalvalue = $(this).val(); 
    var paymenttotalvalue = $('[id$=boxPaymentAmount]').val(); 
    if (totalvalue != paymenttotalvalue) { 
     console.log("The value in 'Total' does not equal the previous value in 'Payment Total.'"); 
     alert("The value in 'Total' does NOT equal the previous value in 'Payment Total.' payment total is " + paymenttotalvalue + " and total is " + totalvalue); 
    } 
    else { 
     console.log("The value in 'Total' DOES equal the previous value in 'Payment Total'"); 
    } 
}); 

Однако, если оба текстовых элементы оставлены пустыми, она не - они считаются не быть равна («если (totalvalue! = paymenttotalvalue) "условие истинно).

Как я могу реорганизовать код, чтобы он игнорировал случаи, когда оба элемента были пустыми?

Что-то вроде:

$(document).on("blur", "[id$=boxSection5Total]", function (e) { 
    var totalvalue = $(this).val(); 
    var paymenttotalvalue = $('[id$=boxPaymentAmount]').val(); 
    if ((totalvalue == null) & (paymenttotalvalue == null)) { 
     return; 
    } 
    . . . 
}); 

?

Оба «boxSection5Total» и «boxPaymentAmount» являются текстовыми элементами (текстовыми полями).

+1

Значение не будет «нулевой» и '«»== null' является ложным , Самое простое и самое идиоматическое - изменение существующего будет: if (! Totalvalue &&! Paymenttotalvalue) {return; } ', но, вероятно, лучше сочетаться с другим условным. – user2864740

+1

@up true, если он исходит из html-формы, его в основном считают пустым значением – itwasntme

ответ

2

Если вы хотите проверить, в частности на нуль, вы должны попробовать что-то вроде это.

if (totalvalue !== null && paymenttotalvalue !== null && totalvalue != paymenttotalvalue) 

Если вы хотите проверить untruthy (смотрите также здесь: JavaScript: how to test if a variable is not NULL), вы можете использовать это:

if (totalvalue && paymenttotalvalue && totalvalue != paymenttotalvalue) 
2

Если это на самом деле пустой текстовые значения затем использовать ....

if(totalvalue === "" && paymenttotalvalue === "") 
{ 
    return; 
} 

или (я думаю)

if(totalvalue == 1 && paymenttotalvalue == 1) 
{ 
    return; 
} 
+2

, и нет необходимости в стольких скобках – itwasntme

+1

и === вместо == (например, false == "" на самом деле верно) – bjfletcher

+0

getElementById не будет работать, потому что элементы Sharepoint имеют кучу греческих, русских, болгарских и т. д., добавленных к ним, например «id = zorbaIvan_bulgarischesSemillaDe0143209870945634-boxSection5Total» –