2011-01-14 166 views
0

我有2個Java腳本函數。如果第一個返回true,那麼第二個不會被執行。如果第一個函數返回false,那麼只有第二個函數要執行。 所以我想用下面的代碼來實現這一目標:爲什麼我的函數在不應該被調用時被調用?

<script type="text/javascript" language="javascript"> 

    function needsForcedReset() { 

      if($("#showMessage").text().length > 0) { 
       return true; 
      } 
      return false; 
    } 

    function sendAlert() { 
     //Sends an alert; 
     alert('oh oh'); 
    } 

    $(document).ready(function() { 
     alert('in doc ready'); 
     if (needsForcedReset()) { 
     alert('Need force reset, no check for alerts'); 
     return; 
     } 
     else { 
     sendAlert(); 
    } 

    }); 



    </script> 

我所看到的不過是,請將SendAlert被稱爲不管needsForcedReset函數返回什麼。我如何使它工作?

編輯:showMessage是一個div元素

+2

什麼是showMessage?一個文本框,一個div? – Geoff 2011-01-14 18:29:26

+0

我沒有看到你的腳本有任何問題....你確定在#showMessage中沒有空格或東西 – armonge 2011-01-14 18:39:28

回答

4

沒有什麼錯與您的代碼。如果needsForcedReset返回falsesendAlert函數將永遠不會執行。和here's the proof。所以我猜needsForcedReset總是返回true,如果id="showMessage"的元素有一些文本,或者如果這是一個輸入框,您需要使用.val()函數而不是.text(),那麼這並不奇怪。

6

如果是輸入文本框,則使用val()方法。

相關問題