【发布时间】:2020-05-19 19:19:20
【问题描述】:
我有一个收集家庭成员个人信息的表格。有一个按钮允许附加表单字段(SSN1、SSN2 等) 我有一个格式化 SSN 的功能。当我尝试向其添加计数器时,如果用户添加其他 SSN 字段,该函数还将格式化其他字段。
var counter = 1;
$("##SSN"+counter).keyup(function() {
counter++;
var val = this.value.replace(/\D/g, '');
var newVal = '';
var sizes = [3, 2, 4];
for (var i in sizes) {
if (val.length > sizes[i]) {
newVal += val.substr(0, sizes[i]) + '-';
val = val.substr(sizes[i]);
}
else
break;
}
newVal += val;
this.value = newVal.substr(0,11);
}).focusout(function(){
showRequiredDatabaseCheck();
});
【问题讨论】:
-
##SSN真的是那个吗?一个#还不够吗? -
我强烈建议对所有 SSN 使用单个类而不是 ID 并增加数字。
-
这是在 Coldfusion 页面上,所以需要额外的 #。
-
@user2072347:如果 Coldfusion 是服务器端,则将
##替换为单个#,如果您尝试专注于客户端功能,那么最好将其分开他们俩。上面的问题完全是关于 JavaScript(使用 jQuery),所以在尝试诊断问题时,您最好通过检查生成的客户端代码来为自己服务,这样您就可以将 Coldfusion 从等式中分离出来。话虽如此......究竟是什么在这里不起作用?我看不出您在哪里描述问题或提出问题。 -
@David:我遇到的问题是客户端。当用户添加增加 1 的附加字段时,我还希望上面的脚本增加,以便每个添加的 SSN 字段都将由脚本格式化。
标签: javascript jquery counter