2011-02-04 5 views
1

私は、次のしている:私はやっている空白のテキストボックスとその中のゼロのテキストボックスをJavaScriptで区別するにはどうすればよいですか?

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を含む)であれば更新したいが、ユーザーがテキストボックスをクリアした場合は消去する。しかし、現時点では、空白のテキストボックスと0のテキストボックスを同じに扱います。

どのように2つを区別できますか?

+1

私はあなたが投稿コードは、おそらくあなたは間違って行くことを感じる何のために責任を負うことができることを信じていません。入力ボックスの値が文字列 "0"を含む空でない文字列の場合、 'NewCount!=" "'の比較結果は 'true'になります。 – Pointy

+0

空白を ""と同じように扱いたいですか? – JoeyRobichaud

+0

@Pointy - それは '!='の仕組みではありません。 '!=='が必要です。 – OrangeDog

答えて

3

ifの文で!==を使用してください。

+0

しかし、 '" 0 "!=" "'は(真に期待通りに) 'true'を評価します。 – Pointy

+0

!=から!==に変更すると問題が解決しました。 – Ben

+0

なぜですか?あなたはリンクや説明を提供できますか? –

0
if (NewCount.length == 0) { 
    // text-box is empty 
} else if (!isNaN(NewCount)) { 
    // the value is a number 
} 
0

次のいずれかが、私はあなたが記述されている現象を再現することはできません

NewCount.length > 0 
NewCount !== '' 
1

を仕事ができます。私のテストでは、 "0"のテキストボックスは比較ロジック(!= "")を使ってではなく、であるとみなされます。ここで

は私の試みです: http://jsfiddle.net/pJgyu/5404/

関連する問題