我想限制sinqles qoutes和双引号进入Asp.net中的文本框。我怎样才能实现它?我如何验证文本框?
答案 0 :(得分:3)
您使用AjaxControlToolkit吗?若然,请使用此。
<asp:TextBox runat="server" ID="TextBox1" Width="100px" />
<cc1:FilteredTextBoxExtender FilterMode="InvalidChars" ID="ftbe_TextBox1" runat="server"
TargetControlID="TextBox1" InvalidChars=""'" />
其中:cc1是AjaxControlToolkit的TagName
如果没有,请手动执行
<asp:TextBox runat="server" ID="TextBox1" Width="100px" onkeypress="return restrictQuotes(event);" />
<script type="text/javascript">
function restrictQuotes(evt) {
var keyCode = evt.which ? evt.which : evt.keyCode;
return (keyCode != '"'.charCodeAt() && keyCode != "'".charCodeAt());
}
</script>
答案 1 :(得分:1)
我会使用javascript
对文本框onchange
事件进行实时验证。然后,您可以使用string.contains()
上的server-side
方法进行server-side
验证。
答案 2 :(得分:0)
您可以添加RegularExpressionValidator
并设置ValidationExpression
='^ [^ \“] * $'以限制报价输入
答案 3 :(得分:0)
你可以在javascript
中完成<script type="text/javascript">
function fixit() {
var numberOfElements = document.theForm.elements.length;
for (x=0; x<numberOfElements; x++) {
// replace all the single, double quotes:
var curElement = window.document.theForm.elements[x];
curElement.value = curElement.value.replace(/\'/g, "'");
curElement.value = curElement.value.replace(/\"/g, """);
}
return true;
}
</script>
然后在表格中你会写这个
<form name='theForm' onSubmit='return fixit()'...
此代码将循环所有元素。如果要验证单个元素,可以阻止用户编写这些字符
在文本框中,您可以这样做:
<input type="text" name="foo" onkeypress="return fix(event);">
在javascript中:
<script type="text/javascript">
function fix(e)
{
if(e.charCode == 34|| e.charCode == 39)
{
return false;
}
return true;
}
</script>
最后一部分阻止用户编写引号和双引号。