2016-08-18 4 views
0

私が持っているように見える問題は、奇妙なものです。だから私はボタンがクリックされるまで非表示になっているフォームを持っています。一度クリックするとテーブルが見え、空であるかどうかを確認するために入力に.blur関数があります。私はalert()をpcontrollerに追加しようとしましたが、それは決して関数に入ることはありません。.blurは以前隠されたテーブルでは発砲しません

は、ここで私は確かに、(準備文書は、以前に行われている)私はすべてのコードを持っていないので

var newQuestionName = $('#questionName'); 

function basicValidate(object) { 
    var val1 = object.val(); 
    if (val1 != null && val1 != ' ' && val1 != '') { 
     // invalid 
     object.removeClass('error'); 
     return true; 
     // alert('true'); 
    } else { 
     // true 
     object.addClass('error'); 
     return false; 
     // alert('invalid'); 
    } 
} 

newQuestionName.blur(function() { 
    alert('TEST'); 
    if (basicValidate($(this))) { 
     add_newQuestionName_valid = true; 
     alert('new question true') 
    } else { 
     add_newQuestionName_valid = false; 
     alert('new question false') 
    } 
}); 

はここでHTML

<form action=""> 
    <div class="row"> 
     <label for="questionName"> 
      FAQ Question: 
     </label> 
     <div class="input-container"> 
      <input id="questionName" type="text" class="text" value=""> 
     </div> 
    </div> 
    <div class="row"> 
     <label for="questionAnswer"> 
      FAQ Answer: 
     </label> 
     <div class="input-container"> 
      <textarea id="questionAnswer" cols="30" rows="10"></textarea> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="submit-container submit" > 
      <div type="submit" ng-click="newFaq()" id="addNew" class="button" value="save">save</div> 
     </div> 
    </div> 
</form> 
+0

あなたはマークアップを提供できますか – Alex

+0

私はhtml – Tfish

答えて

1

のコントローラーにすることはできません何ですこれがあなたの問題かどうかを知る。しかし、私はそれがほぼ確実であるので、私のことを聞いてください。

問題は、このステートメントを実行したとき:

var newQuestionName = $('#questionName'); 

ID questionNameを持つ要素が原因順に、まだ読み込まれていること、これを解決するために、次のことが可能でDOMがロードされます。以下に、あなたのJavaScriptを交換してみてください

$(document).ready(function() { 
    ... 
}); 

$(document).ready(function() { 

    var newQuestionName = $('#questionName'); 

    function basicValidate(object) { 
     var val1 = object.val(); 
     if (val1 != null && val1 != ' ' && val1 != '') { 
      // invalid 
      object.removeClass('error'); 
      return true; 
      // alert('true'); 
     } else { 
      // true 
      object.addClass('error'); 
      return false; 
      // alert('invalid'); 
     } 
    } 

    newQuestionName.blur(function() { 
     alert('TEST'); 
     if (basicValidate($(this))) { 
      add_newQuestionName_valid = true; 
      alert('new question true') 
     } else { 
      add_newQuestionName_valid = false; 
      alert('new question false') 
     } 
    }); 
}); 
JavaScriptコードをラップで10

編集:それが後で追加されたのかどうかわかりませんが、「文書の準備ができました」と言われているので、問題はおそらくそれに関連しています。提供されます。変数newQuestionNameが必要なものを参照していることを確認してください。 alert(newQuestionName.length)で確認できます。

関連する問題