我附加了一个asp.net文本框图像
我希望我的文本框应该有两个括号和一个破折号,对于像(92)42-83823823这样的数字,我希望括号和破折号是不可编辑的,我不想使用ajax控件工具包或其他一些组件比asp.net文本框控件或jquery,有没有办法解决这种情况。
答案 0 :(得分:5)
jQuery Masked Input Plugin完全符合您的要求。对于电话号码,屏蔽input
元素的代码如下所示:
$("#phone").mask("(999) 999-9999");
其中phone
是id
元素的input
。
无论哪种方式,客户端代码绝对是这样做的方式。从服务器端代码的角度来看,它只需要结果值(当然会重新验证它)。客户端代码正在创造更加动态的用户体验。
编辑:我认为这违反了您不使用“除asp.net文本框控件之外的某些组件”的要求。不过,这是有充分理由的。 ASP.NET TextBox
本身没有此功能。您可以编写代码来实现它,它将是JavaScript代码。或者,您可以使用已编写的代码并继续执行应用程序中更有意义的部分:)
答案 1 :(得分:0)
您能解释为什么不想使用UI工具包吗?我认为这可以通过使用蒙版输入jQuery插件http://archive.plugins.jquery.com/project/maskedinput
来完成答案 2 :(得分:0)
充其量不切实际。 MaskedTextBox或类似的是你想要的。你必须编写成堆的事件处理程序来执行此操作,如果您已经使用或需要使用相同的事件处理程序,结果可能会很糟糕......
当TextBox获得焦点去除格式化时,快速且接近的方式是当它失去焦点时将其重新放入。不完全是你想要的,但它更简单。
想想像这样的场景。 用户选择2)42-8,然后按5。 你可以强制进入,破折号在哪里? (95)-3823823 ??? 那之后光标在盒子里的位置在哪里?
你正在建立一个大俱乐部,所以人们可以用它来打败你。