2011-01-14 165 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()方法。

相关问题