自 Angular-UI-Mask is acting oddly ,我正在使用 jquery-inputmask我的一些输入,但是当在 Angular 中动态插入输入时,它没有任何掩码:
<li ng-repeat="item in items">
<input type="text" name="birth_date" class="span2 format_date" ng-model="birth_date" placeholder="Data de Nascimento" required />
</li>
这是相关脚本
<script type="text/javascript">
jQuery(document).ready(function(){
$(".format_date").inputmask("99/99/9999");
});
</script>
我可以做些什么来强制它将掩码设置为新的输入?
最佳答案
像 jQuery.inputMask 这样的 jQuery 插件的工作原理是(如您的代码所示)在文档“准备好”时将行为附加到 DOM 元素。这将运行一次,再也不会运行,因此对于动态添加的内容,此方法不起作用。
相反,您需要在相应的 DOM 更改时运行的东西。因此,每当添加“items”列表中的“item”时,都会添加该元素,并针对该元素运行相应的 jQuery 函数。为此,您需要使用 AngularJS,并且可以编写自己的指令,但幸运的是,有人已经为您编写了代码:jQuery Passthrough plugin作为 Angular UI's 的一部分UI.Utils。
这是一个working Plunkr .
您需要在顶部包含脚本,如下所示 (I downloaded it from GitHub ):
<script src="ui-utils.jq.js"></script>
将模块加载到AngularJS中,例如:
var app = angular.module('myApp', ['ui.jq']);
然后在 HTML 标记中使用该指令:
<input type="text" ui-jq="inputmask" ui-options="'99/99/9999', { 'placeholder': 'dd/mm/yyyy' }" />
关于javascript - 我们如何在动态插入的输入上设置掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21608883/