1

所以,

我的网站中有一个文本框,它是用 c# asp.net 4 编写的。

<td>
    <asp:TextBox ID="UserName" runat="server" CssClass="textEntry" Width="265px" 
     placeholder="שם משתמש" ontextchanged="UserName_TextChanged"></asp:TextBox>
</td>

问题是,当有人试图输入希伯来语时,它会让他这样做。

我怎么知道他试图写的输入是希伯来语并且不让他写?就像在 javascript 中向他显示​​警告一样,或者只是不要让他。

任何人都可以帮我一把吗?

谢谢!

4

3 回答 3

3

我认为你需要这种类型的解决方案TextBox 只写字符串字符

如何使用 JavaScript 在文本框中只允许数字(或字母)。例如

 function ynOnly(evt) {
        evt = (evt) ? evt : event;
        var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
            ((evt.which) ? evt.which : 0));
        if (charCode > 31 && charCode != 78 && charCode != 89 &&
            charCode != 110 && charCode != 121) {
            alert("Enter "Y" or "N" only.");
            return false;
        }
        return true;
   }

在这种情况下,您可以通过将文本框限制为单个字符来增加对错误条目的保护:

 Signature Present: <input type="text" name="signature" size="2" maxlength="1"
  onkeypress="return ynOnly(event)" /> (Y/N)

您可以根据您的要求更改此代码。

于 2012-05-09T17:54:29.047 回答
1

我相信这就是您正在寻找的:

function UserName_TextChanged(which) {
    if (/[^a-zA-Z]/gi.test(which.value)) {
        alert ("Only alpha characters are valid in this field"); // no spaces, full stops or anything but A-Z
        which.value = "";
        which.focus();
        return false;
    }
}

我的机器上没有希伯来语,但我相信它也会阻止这些字符

你这样调用这个方法:

ontextchanged="UserName_TextChanged(this)"

代码说明:

function UserName_TextChanged(which) {

“which”变量是您正在验证的控件。请注意,当您调用该函数时,您传递了“this”,它松散地转换为“this object”

if (/[^a-zA-Z]/gi.test(which.value)) {

这将针对您传入的控件的值测试正则表达式模式

alert ("Only alpha characters are valid in this field");

如果模式匹配(意味着有 az 以外的字符),您将提醒用户他们输入了无效字符

which.value = "";

在这里,您正在擦除控件的文本。您可能不想这样做,这取决于您的需要。

which.focus();

在这里,您将光标放回您正在验证的控件中。

return false;

这用于在提交表单之前调用此验证的情况。通过返回false,可以取消表单的提交。

于 2012-05-09T18:12:44.420 回答
0

关于这个有很多 Stackoverflow 的答案。使用搜索。“希伯来语输入验证”。

于 2012-05-09T18:16:10.013 回答