我需要在jquery中创建一个函数,一旦用户从控件中选中或完成在textbos中输入,就从字段中删除#字符,
$('[id$=txtClient]').keyup(function (){
}
首先,我不知道如何删除它,我应该在密钥中执行此操作吗?或者在另一个事件中?
答案 0 :(得分:7)
你走了:
$('[id$=txtClient]').keyup(function (){
var $el = $(this); // the text element
var text = $el.val();
text = text.split("#").join("");//remove occurances
$el.val(text);//set it back on the element
});
答案 1 :(得分:1)
我认为keyup
不是您想要的事件。相反,我建议使用blur
,它跟踪元素失去焦点的时间。否则,用户将无法键入#
,这可能有些令人沮丧。然后,您可以使用replace()
删除#
字符:
$('[id$=txtClient]').blur(function() {
$(this).val( $this.val().replace(/#/g, '') );
});
函数中的代码将元素的文本设置为其现有文本,但每个#
都使用正则表达式替换为空字符串。 (感谢Benjamin Gruenbaum在我第一次使用replace()
时指出了一个漏洞。)
答案 2 :(得分:0)
您将需要使用在输入失去焦点时发生的blur
event,然后只需更改可作为输入属性访问的value
(对于jQuery包装器:{{ 3}}):
$("[id$=txtClient]").blur(function() {
this.value = this.value.replace(/#/g, "");
});