如何使用一些只读的不可编辑字符自定义ASP.Net文本框?

时间:2012-03-26 15:48:38

标签: asp.net .net visual-studio textbox

我附加了一个asp.net文本框图像enter image description here

我希望我的文本框应该有两个括号和一个破折号,对于像(92)42-83823823这样的数字,我希望括号和破折号是不可编辑的,我不想使用ajax控件工具包或其他一些组件比asp.net文本框控件或jquery,有没有办法解决这种情况。

3 个答案:

答案 0 :(得分:5)

jQuery Masked Input Plugin完全符合您的要求。对于电话号码,屏蔽input元素的代码如下所示:

$("#phone").mask("(999) 999-9999");

其中phoneid元素的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 ??? 那之后光标在盒子里的位置在哪里?

你正在建立一个大俱乐部,所以人们可以用它来打败你。