【问题标题】:backspace and delete characters not working when a textbox is validated for duplicate source code验证文本框是否存在重复源代码时,退格和删除字符不起作用
【发布时间】:2011-08-27 09:31:44
【问题描述】:

我有以下 javascript 函数来验证在文本框中输入的用户代码值,我不允许他们允许重复字符,如 AABC 、 BBCF .... 等,但问题是在输入一些字符后它不允许删除输入的字符。

function ValidateUserCode(txtid,e) 
{

    var validateText = document.getElementById(txtid).value;
    var userText = validateText.toUpperCase();
    if (window.event)
    {
        e = window.event;
    }
    if (e.keyCode) {
        code = e.keyCode;
    }
    else if (e.which) {
        code = e.which;
        characterCode = String.fromCharCode(e.which);
        characterCode = characterCode.toUpperCase();
    }
    if (userText.indexOf(characterCode) < 0)
     {
        return true;
    }
    else {
        return false;
    }
}

这是我在 aspx 页面上的代码

<asp:label Text=" Code" runat="server" ID="Label"></asp:label>
 </div>
     <asp:TextBox ID="CodeTextBox" runat="server" Size="6" MaxLength="4"   Style="text-transform: uppercase;" ></asp:TextBox><br />

这是我在其中进行 javascript 调用的代码隐藏

protected void Page_Load(object sender, EventArgs e)
        {
             IntializeEventHandlers();

}

        private void IntializeEventHandlers()
        {

            this.CodeTextBox.Attributes.Add("onkeypress", string.Format("javascript:return ValidateUserCode('{0}',event);",this.CodeTextBox.ClientID));

        }

【问题讨论】:

  • 您也可以发布html部分吗?如何将此功能绑定到文本框控件

标签: javascript asp.net validation server-side


【解决方案1】:

这是一组基于您想要在多个浏览器中工作的工作代码,并正确处理删除/退格/箭头键:

function ValidateUserCode(txtid, e) {
    var validateText = document.getElementById(txtid).value;
    var userText = validateText.toUpperCase();
    var code = e.which;

    if (!code && ((e.charCode || e.charCode === 0) ? e.charCode : e.keyCode)) {
        code = e.charCode || e.keyCode;
    }

    var characterCode = String.fromCharCode(code).toUpperCase();

    return (userText.indexOf(characterCode) < 0);
}

更新

这是我用来测试的 html:

<input type="text" id="mytext" onkeypress="return ValidateUserCode('mytext',event);" />

确保您的 ASP 代码中呈现的 html 看起来与此类似,并且 id 值匹配。

【讨论】:

  • 它允许我进入 AASD,AABC ,我可能希望它在我进入 AASD 时阻止
  • 我认为你有问题,因为在我使用的一个简单的测试页面中,它按预期工作。请检查我添加到答案中的更新,了解您的 ASP 的预期 html 输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多