【发布时间】:2021-05-31 12:53:34
【问题描述】:
我尝试在每行输入社会安全号码时插入连字符 (-) (xxx-xx-xxxx)。 当 Social Security # 不在循环或数组中时,我的脚本可以正常工作。我不知道如何在 javascript 中正确实现 id。 for 循环中
我对
HTML:
for (int i = 0; i < Model.RecordList.Count; i++)
{
<tr>
<td>
@Html.CheckBoxFor(m => @Model.RecordList[i].Resolve, @Model.RecordList[i].Resolve)
@*<input asp-for="@Model.RecordList[i].Resolve" type="checkbox" class="form-control_checkbox" value="@Model.RecordList[i].Resolve" />*@
</td>
<td>
<div>
<input asp-for="@Model.RecordList[i].RetirementNumber" class="form-control_text w-100" maxlength="13" disabled="disabled" />
<input asp-for="@Model.RecordList[i].RetirementNumber" type="hidden" id="RetirementNumber" />
</div>
</td>
<td><div><input asp-for="@Model.RecordList[i].FirstName" class="form-control_text w-100" /></div></td>
<td><div><input asp-for="@Model.RecordList[i].LastName" class="form-control_text w-100" /></div></td>
<td><div><select asp-for="@Model.RecordList[i].Fund" class="form-control_selectbox w-100" asp-items="@(List<SelectListItem>)@Model.FundList"></select></div></td>
<td>
<div>
<select asp-for="@Model.RecordList[i].Code" class="form-control_selectbox w-100" asp-items="@(List<SelectListItem>)@Model.IrsOfficesList"></select>
</div>
</td>
<td>
<div class="ssn_format">
<input id="maskedSSN" class="masked_ssn form-control_text w-100" maxlength="12" />
<input asp-for="@Model.RecordList[i].SSN" oncopy="return false" onpaste="return false" oncut="return false" class="w-100 form-control_text read-only-limited-mode" maxlength="11" style="display:none" />
</div>
</td>
<td><div><input asp-for="@Model.RecordList[i].MonthlyDeduction" asp-format="{0:#####.00}" type="number" step="0.01" class="form-control_text w-100" /></div></td>
</tr>
}
javascript:
$(document).ready(function () {
$("#maskedSSN").on("cut copy paste", function (e) {
e.preventDefault();
});
$("#maskedSSN").mask('000-00-0000', { 'translation': { 0: { pattern: /[0-9*]/ } } });
$("#maskedSSN").on("keyup", maskSSN);
$("#maskedSSN").val($("#RecordList_SSN").val());
$("#maskedSSN").keyup();
});
function maskSSN2() {
var newMaskedValue = "";
var currentMaskedValue = $("#maskedSSN").val();
var tail = "";
var front = "";
getInputBeforeMask();
if (currentMaskedValue.length >= 6) {
front = currentMaskedValue.substring(0, 6);
tail = currentMaskedValue.substring(6);
front = front.replace(new RegExp("[0-9]", "g"), "*");
}
else {
front = currentMaskedValue;
front = front.replace(new RegExp("[0-9]", "g"), "*");
}
newMaskedValue = front + tail;
$("#maskedSSN").val(newMaskedValue);
}
function getInputBeforeMask() {
var ssn = $("#RecordList_SSN").val();
var maskedSsn = $("#maskedSSN").val();
alert("ssn=" + ssn + " un=" + maskedSsn)
if (ssn.length < maskedSsn.length) {
ssn = ssn + maskedSsn.substring(ssn.length);
}
else {
ssn = ssn.substring(0, maskedSsn.length);
}
$("#RecordList_SSN").val(ssn);
}
【问题讨论】:
标签: javascript arrays loops asp.net-core maskedtextbox