2011-01-14 4 views
0

У меня есть два скрипта 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

+0

Я не вижу ничего плохого в твоем скрипте .... ты уверен, что трэш не пробелы или вещи в #showMessage. – armonge

ответ

4

Там нет ничего плохого с кодом. Если needsForcedReset возвращает false, функция sendAlert никогда не будет выполнена. И here's the proof. Поэтому я думаю, что needsForcedReset всегда возвращает true, что не удивительно, если элемент с id="showMessage" имеет некоторый текст, или если это поле ввода, вам нужно использовать функцию .val() вместо .text().

+0

Вы оставили вне существующий код, вызывающий его проблему. * Ваш * код работает, но его привычка, если этот элемент showMessage является INPUT. – SRM

6

Используйте метод val(), если это текстовое поле ввода.

Смежные вопросы