猿问

ASP.NET 和 C#:在键入和粘贴时从 asp.TextBox 中删除空格

有一个很好的解决方案来完成我在这里的目标,他们使用这个 javascript 函数:


var text = document.getElementById('txtText');

text.addEventListener('input', function(e){

  var keyCode = e.keyCode ? e.keyCode : e.which;

  this.value = this.value.replace(/\s/g, '')

  if(keyCode === 32) return;

})

它适用于以下元素:


<input type='text' id="txtText">

就我而言,我没有<input...元素,而是<asp:TextBox元素,并且上面的功能不起作用。我使用了正确的元素 ID,但我仍然可以粘贴并键入空格。我错过了什么?


湖上湖
浏览 221回答 2
2回答

牛魔王的故事

我会使用一个类名并将脚本绑定到该类的元素。然后你不需要 ClientID 并且它适用于多个元素。<asp:TextBox ID="TextBox1" runat="server" CssClass="NoSpaces"></asp:TextBox><asp:TextBox ID="TextBox2" runat="server" CssClass="NoSpaces"></asp:TextBox><script>&nbsp; &nbsp; $('.NoSpaces').bind('keyup blur', function (e) {&nbsp; &nbsp; &nbsp; &nbsp; var keyCode = e.keyCode ? e.keyCode : e.which;&nbsp; &nbsp; &nbsp; &nbsp; this.value = this.value.replace(/\s/g, '')&nbsp; &nbsp; &nbsp; &nbsp; if (keyCode === 32) return;&nbsp; &nbsp; });</script>如果您确实想使用 ClientID,请执行此操作$('#<%= TextBox1.ClientID %>').bind('keyup blur', function (e) {但是,如果输入不是 aspnet 控件(asp:TextBox或带有 的输入runat=server),那么它将不起作用。ClientID 的另一个问题是脚本需要内联在包含该控件的页面上。

翻阅古今

看来您没有正确选择文本框项目。您可以使用以下方法获取由 ASP.NET 生成的 HTML 标记的控件 ID&nbsp;ClientID:var&nbsp;text&nbsp;=&nbsp;document.getElementById('<%=&nbsp;txtText.ClientID%>');
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答