2010-01-06 149 views
0

我在我的ASP.net應用程序中使用電子簽名墊。如果epad未連接,我想彈出警告消息。Javascript未定義函數

function isePad() { 
      var epad; 
      epad = window.document.esCapture1.ConnectedDevice; 
      alert(epad); 
      if (epad == '') { 
       alert('Sorry epad is not Connected or drivers not installed'); 
      } 


     } 

在大多數機器工作正常。在某些機器中,第一個警報顯示未定義的值。我想顯示警報('抱歉epad未連接或未安裝驅動程序');如果EPAD值「」或未定義

回答

3

使用這種方法epad將評估爲false如果它具有的undefined''的值。

if (!epad) { 
    alert('Sorry epad is not Connected or drivers not installed'); 
} 
2
function isePad() { 
      var epad; 
      epad = window.document.esCapture1.ConnectedDevice; 
      alert(epad); 
      if (epad == '' or epad == undefined) { 
       alert('Sorry epad is not Connected or drivers not installed'); 
      } 


} 
0

嘗試

if (epad == '' || typeof epad == 'undefined') { 

代替

if (epad == '') { 
0

所以 - 一些,這是新的給我,也許別人會有值錢的東西添加到什麼,我要說...

也許嘗試這樣的事情...

(function() { 
    var epad = window.document.esCapture1 && window.document.esCapture1.ConnectedDevice; 
    alert(epad); 
    !epad && alert('Sorry epad is not Connected or drivers not installed'); 
})(); 

在你的例子中,我認爲如果'window.document.esCapture1'本身是未定義的,那麼我認爲一些或所有瀏覽器可能會在函數內的第一行窒息,所以我已經改變它來防止這種可能性。另外,把這個測試放在一個匿名函數中,可以使'epad'變量不在全局名稱空間之內,這是個好主意(除非你在別處需要它)。

最後一行簡單地測試以查看'epad'變量是否爲falsy - 表示如果'epad'爲null,undefined或false,則會顯示第二個警報。

+0

抱歉 - epad變量不在全局名稱空間中;這是isePad功能。 –