我正在尝试使用http://www.angelwatt.com/coding/masked_input.php#nav-example来更改输入处理日期的方式。它适用于bootstrap和jquery,但是 当我将输入字段放在jscript模板中时,它不起作用。
This works
<input type="text" class="form-control" id="some-mask" placeholder="" value="" />
<script type="text/template" id="tpl">
This doesnt work
<input type="text" class="form-control" id="some-mask2" placeholder="" value="" />
</script>
<script type="text/javascript">
MaskedInput({
elm: document.getElementById('some-mask'),
format: 'dd/mm/yyyy',
separator: '\/',
typeon: 'DMY'
});
MaskedInput({
elm: document.getElementById('some-mask2'),
format: 'dd/mm/yyyy',
separator: '\/',
typeon: 'DMY'
});
</script>
任何人都知道为什么它不起作用的任何线索?谢谢。
答案 0 :(得分:0)
问题是当你运行它时:
MaskedInput({
elm: document.getElementById('some-mask2'),
//...
});
找不到#some-mask2
,所以你真的在说elm: null
。您的#some-mask2
元素位于#tpl
模板中,但该模板不是HTML,在编译之前不在DOM中,填充它并将其放在页面上的某个位置。
某处你有这样的结构:
var t = _.template($('#tpl').html());
var h = t({...});
$(something).append(h);
您希望在之后调用MaskedInput
,而上述内容已将填好的模板放入DOM中。