使用JavaScript拒绝Textarea中的特定字符,

时间:2019-03-01 03:23:20

标签: javascript html

所以我有一个textarea,并且我想防止某人在输入过程中在其中输入xss数据。在提交之前,我需要这样做,因为我的网站是ASP.NET,并且框架会立即引发异常 “从客户端检测到潜在的Request.Form值。”

如果它被发布了,请允许我在发布期间对其进行清理。所以我需要在发布之前通过JavaScript进行操作。

我尝试过这种做法,认为可能会拒绝按键,但是它似乎不起作用,返回false并没有做任何事情,例如对于提交。

function CheckChar(event) {
    var x = event.which || event.keyCode;
    if (x == 60 || x == 62)
        return false;
    else
        return true;
}

然后从HTML中执行以下操作:

<asp:TextBox id="SMSMessage" TextMode="multiline" onkeypress="CheckChar(event)" Columns="50" Rows="5" runat="server" />

2 个答案:

答案 0 :(得分:0)

使用return

function CheckChar(event) {
    var x = event.which || event.keyCode;
    console.log(x)
    if (x == 60 || x == 62)
        return false;
    else
        return true;
}
<!DOCTYPE html>
<html>
<body>


<textarea name="SMSMessage" rows="5" cols="50" id="SMSMessage" onkeypress="return CheckChar(event)"></textarea>



</body>
</html>

答案 1 :(得分:0)

我最终使用了另一种方法,因为我需要验证所有数据,以防万一有人在文本区域中粘贴文本。

<asp:TextBox id="SMSMessage" TextMode="multiline" onkeyup="validate(this)" Columns="50" Rows="5" runat="server" />

使用此javascript:

function validate(o) {
    if (o.value.indexOf('<') > -1)
        o.value = o.value.replace('<', '');
    if (o.value.indexOf('>') > -1)
        o.value = o.value.replace('>', '');
}