2011-01-14 2 views
0

2 개의 자바 스크립트 기능이 있습니다. 첫 번째가 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

입니다. needsForcedResetfalse을 반환하면 sendAlert 함수가 실행되지 않습니다. 그리고 here's the proof. 그래서 needsForcedResetid="showMessage"의 요소에 텍스트가 있거나, 입력 상자 인 경우 .text() 대신 .val() 함수를 사용해야하는 경우에 놀랄 일이 아니며 항상 true을 반환한다고 생각합니다.

+0

문제의 원인이되는 관련 코드를 생략했습니다. * * 코드가 실행되지만 showMessage 요소가 INPUT 인 경우에는 코드가 실행되지 않습니다. – SRM

6

입력 텍스트 상자 인 경우 val() 메서드를 사용하십시오.

관련 문제