IE9 Placeholder.js 错误

IE9 Placeholder.js Bug

我在 IE9 上使用 placeholder.js 作为我的 HTML5 属性 'placeholder'。

我的问题是当页面最初加载时,输入字段仍然没有显示占位符。一旦我单击并聚焦在输入字段内部,然后聚焦回来,它就可以工作了。我无法理解可能导致这种情况的原因。

我正在加载 placeholder.js 在页脚中

<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-route/angular-route.js"></script>
<!--Third Party Dependencies-->
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="/js/libs/harvey.js"></script>
<script src="/js/libs/screen.js"></script>
<script src="/js/libs/placeholder.min.js"></script>
<!--Application Scripts-->
<script src="/js/app.js"></script>
<script src="/js/controllers/mainCtrl.js"></script>
<script src="/js/controllers/couponCtrl.js"></script>
<script src="/js/services/mobileDetection.js"></script>
<script src="/js/main.js"></script>

这是输入字段:

<input type="email" class="form-control email-address-input" name="userEmail" ng-model="email.text" placeholder="ENTER EMAIL ADDRESS" ng-class="{ 'error': emailForm.userEmail.$error.email }" required>

如果您有任何问题,请随时提出任何反馈意见。 谢谢,杰。

似乎对于 Internet Explorer 9,angular 模型 ng-model="email.text" 被插入到输入字段中。

$scope.toggleEmailClick = function(){
    $scope.coupon.showEmailForm = !$scope.coupon.showEmailForm;
    $scope.coupon.emailSent = false;
    $scope.email.text = "";
}
window.setTimeout(function () {
    Placeholders.enable();
}, 100);