2016-08-18 40 views
0

所以我似乎遇到的问题有点奇怪。所以我有一个隐藏的表单,直到点击一个按钮,点击表格后,表格可见并且在输入上有一个.blur函数来检查它们是否为空。我已经尝试在整个pcontroller中添加alert(),并且它永远不会进入函数。.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() { 
    ... 
}); 

尝试用以下替换您的JavaScript:

$(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') 
     } 
    }); 
}); 

编辑:不知道它是否后来被添加,但由于你说“文档准备”是在早些时候完成的,问题仍然可能与此有关,考虑到它工作正常,当我使用代码I提供。确保newQuestionName变量指的是你想要的。您可以使用alert(newQuestionName.length)进行检查。