Reset контроль проверки asp.net через javascript?
Как я могу reset управлять проверкой asp.net через JavaScript? В текущем примере кода удаляется текст сообщения об ошибке, но не reset элемент управления проверкой для следующего представления формы.
var cv= document.getElementById("<%= MyValidationContorl.ClientID %>");
cv.innerHTML = '';
Update:
Вот полный образец кода формы. Кажется, я не могу заставить контрольные проверки отключиться при отправке другой формы:
function ClearData() {
var cv = document.getElementById("<%= MyValidationContorl.ClientID %>");
cv.innerHTML = '';
}
<html>
<form>
<asp:TextBox id="MyTextControl" runat="server" />
<asp:CustomValidator ID="MyValidationContorl" runat="server" />
<input type="button" onclick="javascript:ClearCCData(); return false;" runat="server" />
</form>
</html>
Ответы
Ответ 1
Проверка подлинности страницы запускается каждый раз, когда вы делаете сообщение, проблема заключается в том, что вы очищаете содержимое валидатора cv.innerHTML = '';
, таким образом ваше сообщение проверки достоверно теряется навсегда, и вы считаете, что проверка не срабатывает снова,
и для ответа @Glennular код не обрабатывает свойство validator Display
, если его значение в Dynamic
, валидатор будет переключен с помощью validator.style.display
, но если его установить на None
или Inline
то вместо этого будет использовано свойство validator.style.visibility
.
Лучше использовать asp.net ValidatorUpdateDisplay
вместо этого,
<script type="text/javascript">
function Page_ClientValidateReset() {
if (typeof (Page_Validators) != "undefined") {
for (var i = 0; i < Page_Validators.length; i++) {
var validator = Page_Validators[i];
validator.isvalid = true;
ValidatorUpdateDisplay(validator);
}
}
}
</script>
Обновить: Reset Резюме валидации
<script type="text/javascript">
function Page_ValidationSummariesReset(){
if (typeof(Page_ValidationSummaries) == "undefined")
return;
for (var i = 0; i < Page_ValidationSummaries.length; i++)
Page_ValidationSummaries[i].style.display = "none";
}
</script>
Ответ 2
Этот параметр сбрасывает все валидаторы во всех группах проверки.
<script type="text/javascript">
Page_ClientValidate('');
</script>
Ответ 3
Попробуйте следующий фрагмент кода:
$("#<%= txtUserSettingsEmailRequiredValidator.ClientID %>").css("display", "none");
Я надеюсь, что это сработает, поскольку это сработало для меня.:)
Ответ 4
Здесь код reset всех валидаторов
function CleanForm() {
document.forms[0].reset();
for (i = 0; i < Page_Validators.length; i++) {
Page_Validators[i].style.visibility = 'hidden';
}
return false;
}
или один:
document.getElementById("<%= MyValidationContorl.ClientID %>").style.visibility
= 'hidden';
Ответ 5
Используя Page_Validators[i].style.visibility = 'hidden';
Не работайте для меня, поэтому я использую эту строку кода: Page_Validators[i].enabled = false;
if (sFirstName == "" && sLastName == "")
{
alert('Reminder: Please first enter student ID to search for the student information before filling out the rest of the form field values');
//Disable all require field validation coontrol on the form so the user could continue to use the Lookup student function.
document.forms[0].reset();
for (i = 0; i < Page_Validators.length; i++) {
//Page_Validators[i].style.visibility = 'hidden';
Page_Validators[i].enabled = false;
}
return false;
}
else
{
alert('Student Name = ' + sFirstName + ' ' + sLastName);
document.forms[0].reset();
for (i = 0; i < Page_Validators.length; i++) {
//Page_Validators[i].style.visibility = 'hidden';
Page_Validators[i].enabled = true;
}
return true;
}