有谁知道如何使用JavaScript禁用ASP.NET验证程序? 我正在使用javascript style.display ='none'来禁用网页的各个部分。然而,这些禁用的部分有asp.net验证器仍在触发,我需要禁用然后不进行往返服务器。 感谢。
答案 0 :(得分:52)
使用此代码段:
function doSomething()
{
var myVal = document.getElementById('myValidatorClientID');
ValidatorEnable(myVal, false);
}
答案 1 :(得分:1)
此外,您可以将Visible属性设置为false,而不是简单地隐藏元素。
whateverItem.Visible = false;
这使得该项目不会呈现给页面,我认为这会禁用验证。如果我错了,请有人纠正我。
答案 2 :(得分:1)
这是一个古老的问题,但对于未给出的以下答案感到惊讶。我使用上面的评论实现了它并且完美无缺地工作
# enable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = true
#disable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = false
此实现可能有些棘手,因为请记住,如果javascript中存在错误,代码将退出,但您不会收到任何错误。一些有用的要点
确保您可以设置断点,可以单步执行代码。如果没有重新启动浏览器。
在放置此代码的函数的开头设置断点。单步执行代码,如果出现错误,代码将退出,您将无法进入代码。
在firefox Firebug中,您可以在控制台选项卡中键入整个javascript语句,以查看语句返回的内容。最重要的是,您要检查控件的非空值。
答案 3 :(得分:1)
Per Glenn G上面的评论,我会用
myVal.enabled = false;
禁用验证器而不是
ValidatorEnable(myVal, false);
以下是我的经历:两个片段在我的2003服务器上使用.net framework 2.0都运行良好。但是,在带有.net框架4.0的服务器2008 R2上(我不确定是哪个导致了这个问题),我使用&#34; ValidatorEnable&#34;进行了意想不到的行为。我的页面上有标签(usercontrols),当我离开正在调用&#34; ValidatorEnable&#34;的标签时,它会暂时禁用下一个标签上的验证器(即使没有调用代码来禁用它们),直到下一次回发。
答案 4 :(得分:0)
以下是有关如何从JavaScript控制ASP.NET验证程序的详细文章:
How to control ASP.NET Validator Controls Client Side validation from JavaScript
答案 5 :(得分:0)
这样做的最佳方式,
function doSomething()
{
var objvalidator = document.getElementById('myValidatorClientID');
objvalidator.enabled = false;
objvalidator.isvalid = true;
ValidatorUpdateDisplay(objvalidator);
}