我正在尝试接受自2000年和两周(从01到24)接受年份的输入,即200101,201324,但不像201325及更高 我的代码是这个:
X.TextFieldFor("fnPayment")
.FieldLabel("Payment Fortnight")
.Value((Model.fnPayment != null ? Model.fnPayment : ""))
.Note("YYYYFF")
.InputID("fnPayment")
.IDMode(IDMode.Legacy)
.Plugins(X.InputMask()
.Mask("AABCPQ")
.UnmaskOnBlur(true)
.ClearWhenInvalid(true)
.InvalidMaskText("Format must be YYYYQQ, where YYYY refers a year and QQ to fortnight. For example: 201401, 201424")
.MaskSymbols(ls=> {
ls.Add(new MaskSymbol { Name = "A", Regex = "[20]", Placeholder = "Y".ToCharArray()[0] });
ls.Add(new MaskSymbol { Name = "B", Regex = "[012]", Placeholder = "Y".ToCharArray()[0] });
ls.Add(new MaskSymbol { Name = "C", Regex = "[0-9]", Placeholder = "Y".ToCharArray()[0] });
ls.Add(new MaskSymbol { Name = "P", Regex = "[012]", Placeholder = "Q".ToCharArray()[0] });
ls.Add(new MaskSymbol { Name = "Q", Regex = "[0-9]", Placeholder = "Q".ToCharArray()[0] });
})
)
.ID("fnPaymentContainer")
在我测试时,我发现唯一的方法就是接受01到29之间的任何数字,但是24之后无效,我试图限制用户错误。
¿任何想法?任何帮助都会很棒。
感谢先进。
答案 0 :(得分:0)
我可以提出以下建议。
@(Html.X().TextField()
.Plugins(
Html.X().InputMask()
.Mask("ABCCDE")
.MaskSymbols(ms =>
{
ms.Add(new MaskSymbol() { Name="A", Placeholder='Y', Regex="2" });
ms.Add(new MaskSymbol() { Name="B", Placeholder='Y', Regex="0" });
ms.Add(new MaskSymbol() { Name="C", Placeholder='Y', Regex="\\d" });
ms.Add(new MaskSymbol() { Name="D", Placeholder='Q', Regex="[0-2]" });
ms.Add(new MaskSymbol() { Name="E", Placeholder='Q', Regex="[0-4]" });
}
)
)
)
唯一的问题 - 它允许输入" 00"在末尾。第二个字符取决于第一个字符。不幸的是,没有处理这种情况的功能。