отключить Обязательные полевые валидаторы - PullRequest
2 голосов
/ 16 марта 2011

У меня есть форма, которая состоит из нескольких обязательных полевых валидаторов и имеет 2 кнопки добавления и обновления. я хочу связать только 5 из 13 обязательных полевых валидаторов с кнопкой обновления, и все с кнопкой добавления - это возможно, так как я застрял с этой проблемой.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Некоторые поля связаны с двумя кнопками?

Если есть поля, относящиеся к кнопке добавления, и поля (но не одинаковые), относящиеся к кнопке обновления, вы можете установить одно и то же свойство ValidationGroup для полей, валидаторов и кнопок, которые связаны

если есть поля, относящиеся как к кнопке добавления, так и к кнопке обновления:

  • либо пересмотрите свою эргономику ... это звучит немного странно
  • или используйте специальный валидатор, который проверит ваши собственные условия
0 голосов
/ 25 сентября 2012

Разделите ваши элементы управления на 2 деления, затем используйте JavaScript для управления валидаторами.

Скажем, нажмите «Добавить», чтобы включить валидаторы для добавления, нажмите «обновить», а затем просто включите валидаторы для обновления.

Я написал код js, который, кажется, может удовлетворить ваши запросы. Итерируйте валидаторы и включите их вам. затем очистите экран, сотрите информацию об ошибке.

$(function() {
      hidedivTemplate();
});

function hidedivTemplate() {
      $('#divTemplate').hide();
      $('#divAuto').show();
      goThroughValidators(enableAutoDIV_Validation);
}

function hidedivAuto() {
      $('#divAuto').hide();
      $('#divTemplate').show();
      goThroughValidators(enableTemplateDIV_Validation);
}

function goThroughValidators(func) {
      for (i = 0; i < Page_Validators.length; i++) {
            var validator = Page_Validators[i];
            func(validator);
      }
      //After the iteration, clean the error info on the screen
      $("span[class='errorleft']").hide();
}

function enableAutoDIV_Validation(validatorObj) {
      switch (validatorObj.controltovalidate) {
            case "<%=AAA.ClientID%>":
            case "<%=BBB.ClientID%>":
                  ValidatorEnable(validatorObj, true);
                  break;
            default:
                  ValidatorEnable(validatorObj, false);
                  break;
      }
}

function enableTemplateDIV_Validation(validatorObj) {
      switch (validatorObj.controltovalidate) {
            case "<%=CCC.ClientID%>":
            case "<%=DDD.ClientID%>":
                  ValidatorEnable(validatorObj, true);
                  break;
            default:
                  ValidatorEnable(validatorObj, false);
                  break;
      }
}     

Полный фрагмент кода можно найти здесь http://codelife.cybtamin.com/2012/08/enable-and-disable-asp-net-validator-by-javascript/

...