我想知道我所遗漏的关于仅禁用这些通过js的内容,而不必在后面的代码中添加重复代码。
我使用此代码禁用/启用验证器:
$token = $securityContext->getToken();
$isFullyAuthenticated = $securityContext->isGranted('IS_AUTHENTICATED_FULLY');
它很好用,直到我回发来保存一些数据,...这些禁用的验证器没有被禁用。
所以如果IsPostBack为true,我必须在OnLoad()中运行一些重复的代码来禁用我已经通过js禁用的验证器。
编辑:删除任何代码,因为它不是获得答案所必需的。答:服务器端也必须禁用这些元素,由于以下原因无法明确完成:在此处找到,感谢@ConnersFan:https://msdn.microsoft.com/en-us/library/aa479045.aspx
答案 0 :(得分:1)
正如您在ASP.NET Validation in Depth中所看到的,在客户端启用/禁用验证器的首选方法是使用ValidatorEnable
:
var validator = document.getElementById(id);
ValidatorEnable(validator, false);
在服务器端,您还必须明确启用/禁用验证器(我不认为您可以避免这种情况):
validator.Enabled = false;
此更改将保留在客户端代码中,与Javascript代码中的更改不同,后者未在回发中保留。