为什么我的函数在它不应该被调用时被调用?

时间:2011-01-14 18:21:50

标签: javascript jquery

我有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>

我所看到的是,无论needsForcedReset函数返回什么,都会调用sendAlert。我如何使它工作?

编辑:showMessage是一个div元素

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

您的代码没有任何问题。如果needsForcedReset返回falsesendAlert函数将永远不会执行。并且here's the proof。所以我想needsForcedReset总是会返回true,如果带有id="showMessage"的元素有一些文字,或者如果这是一个输入框你需要使用{{3},这就不足为奇了而不是.val()