Как я могу различить пустое текстовое поле и текстовое поле с нулем в нем в JavaScript? - PullRequest
1 голос
/ 04 февраля 2011

У меня есть следующее:

var NewCount = document.getElementById('MainContent_gv_NewCount_' + rowIndex).value;
if (NewCount != "") {
    document.getElementById('MainContent_gv_lblTotal_' + rowIndex).innerHTML = "£" + ((originalCount - NewCount) * unitCost).toFixed(2);
} else { 
   document.getElementById('MainContent_gv_lblTotal_' + rowIndex).innerHTML = "";
            }

Расчеты, которые я делаю, основаны на значении в текстовом поле. (NewCount).

Я хочу, чтобы метка обновлялась, если значением является любое число (включая 0), но стирается, если пользователь очищает текстовое поле. Однако в настоящий момент он обрабатывает пустое текстовое поле и текстовое поле с нулем в нем.

Как я могу различить два?

Ответы [ 4 ]

3 голосов
/ 04 февраля 2011

Используйте !== в вашем if утверждении.

1 голос
/ 04 февраля 2011

Я не могу воспроизвести поведение, которое вы описываете. В моих тестах текстовое поле с "0" будет считаться не пустым Javascript с использованием вашей логики сравнения (! = "").

Вот моя попытка: http://jsfiddle.net/pJgyu/5404/

0 голосов
/ 04 февраля 2011

Любой из следующих может работать

NewCount.length > 0
NewCount !== ''
0 голосов
/ 04 февраля 2011
if ( NewCount.length == 0 ) {
    // text-box is empty
} else if ( !isNaN(NewCount) ) {
    // the value is a number
}
...