我使用jQuery Masked Input plugin设置所有输入元素,并将数据掩码属性定义为属性掩码值:
鉴于此html:
<input type='text' id="a" data-mask='999?999' />
<input type='text' id="b" data-mask='999' />
这个脚本:
$("input[data-mask]").each(function() {
var maskValue = $(this).data('mask');
console.log($(this).attr('id') + ": " + maskValue);
//undefined error here on second iteration "b: 999"
//no issues if you remove the data-mask from one of the input elements
return $(this).mask(maskValue);
});
第二次迭代引发错误:&#34;未捕获TypeError:undefined不是函数&#34;在这条线上,说&#39;分裂&#39;没有定义。
firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
然而,这段代码工作正常,掩码没有问题。
$('#a').mask('999?999');
$('#b').mask('999');
任何人都可以对这种奇怪的行为发光吗?
答案 0 :(得分:8)
第二个是number
data()
由于split()是一个字符串方法,因此抛出错误。
简单修复:
var maskValue = "" + $(this).data('mask');
或
var maskValue = $(this).data('mask').toString();
答案 1 :(得分:1)
使用.data('mask')
更改.attr('data-mask')
。由于某些原因,我现在可以正常使用...也许jQuery版本相关?