Подтвердить что ты не робот

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>
4b9b3361

Ответ 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;
    }