2011-01-14 27 views
0

私は2つのJavaスクリプト関数を持っています。最初のものがtrueを返した場合、2番目のものは実行されません。最初のものがfalseを返す場合は、2つ目の関数だけが実行されます。 は、だから私は、次のコードでこれを達成しようとしています:私は見ています何私の関数が呼び出されないのはなぜですか?

<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はあなたのコードと間違って何もない

+2

showMessageとは何ですか?テキストボックス、div? – Geoff

+0

あなたのスクリプトに間違いはありません.... #showMessageにスペースやものはありませんか? – armonge

答えて

4

div要素です。 needsForcedResetfalseを返す場合、sendAlert関数は決して実行されません。そしてhere's the proof。だから、needsForcedResetはいつもtrueを返します。id="showMessage"の要素に何らかのテキストがある場合、あるいは入力ボックスの場合.text()の代わりに.val()関数を使用する必要があります。

+0

問題の原因となっている関連性のあるコードを削除しました。 *あなたの*コードは実行されますが、そのshowMessage要素がINPUTの場合はそのコードがありません。 – SRM

6

入力テキストボックスの場合、val()メソッドを使用します。

関連する問題