Как отобразиться, ошибочный контейнер Проверки jQuery только на отправляют

Независимо от наследования, NH может отображать разные типы в одну и ту же таблицу. Я сделал это, хотя и без наследства.

Вы должны быть в состоянии удалить эту строку из переопределения NodeEntityLite и добиться ее:

mapping.UseUnionSubclassForInheritanceMapping();

Если это окажется неудачным, вам, возможно, придется настроить автоподстановку дальше. Это, безусловно, возможно.

14
задан alex 11 January 2016 в 14:20
поделиться

4 ответа

Вы найдете документацию для meta опции в http://docs.jquery.com/Plugins/Validation/validate#toptions

Если Вы хотите отобразить ошибки около исходных данных, И в отдельном ошибочном контейнере необходимо будет переопределить errorPlacement обратный вызов.

От Вашего примера:

...
                    courriel_in: "ERROR",
                    userdigit: "ERROR"
            }
            ,errorContainer: container

            ,errorPlacement: function(error, element){
                var errorClone = error.clone();
                container.append(errorClone);
                error.insertAfter(element)              
            }

            // We don't need this options
            //,errorLabelContainer: $("ol", container)
            //,wrapper: 'li'
            //,meta: "validate"
    });
 ...

error параметр является объектом jQuery, содержащим a <label> тег. element параметр является входом, который привел проверку к сбою.

Обновление комментариев

С вышеупомянутым кодом ошибочный контейнер не очистит ошибки, потому что он содержит клонированную копию. Легко решить это, если jQuery дает "скрыть" событие, но это не существует. Давайте добавим скрыть событие!

  1. Сначала нам нужен плагин AOP
  2. Мы добавляем совет для скрыть метода:

                jQuery.aop.before({target: jQuery.fn, method: "hide"},
                    function(){
                        this.trigger("hide");
                    });
    
  3. Мы обязываем скрыть событие скрывать клонированную ошибку:

            ...
            ,errorPlacement: function(error, element){
                var errorClone = error.clone();
                container.append(errorClone);
                error.insertAfter(element).bind("hide", function(){
                    errorClone.hide();
                });
            }
            ...
    

Попробуйте

14
ответ дан 1 December 2019 в 07:19
поделиться

Я удалил бы errorContainer и затем прервал бы проверку на обратной передаче и там добавил бы контейнерную ошибку вручную как это:

$("#frmEnregistrer").bind("invalid-form.validate", function(e, validator) {
  var err = validator.numberOfInvalids();
  if (err) {
    container.html("THERE ARE "+ err + " ERRORS IN THE FORM")
    container.show();
  } else {
    container.hide();
  }
}).validate({ ... })
3
ответ дан 1 December 2019 в 07:19
поделиться

Я не знаю, предоставляет ли плагин проверки возможность для этого, но можно, вероятно, использовать стандартный jQuery для достижения того, что Вы хотите. Удостоверьтесь, что Вы - контейнер, первоначально скрыт, путем установки стиля отображения ни на один:

<div id="container" style="display:none;"></div>

Затем Вы можете сцепление onsubmit событие к форме, которая сделает контейнер видимым, как только попытка предпринята для представления формы:

jQuery('#formId').onsubmit(function() {
    // This will be called before the form is submitted
    jQuery('#container').show();
});

Надо надеяться, объединение этого с Вашим существующим кодом должно добиться цели.

-1
ответ дан 1 December 2019 в 07:19
поделиться

Сначала ваш контейнер должен использовать идентификатор вместо класса .. (я предполагаю, что идентификатор - «containererreurtotal»)

Затем попробуйте это ..

    $().ready(function() {

        $('div#containererreurtotal').hide();

        // validate signup form on keyup and submit
        $("#frmEnregistrer").validate({
            errorLabelContainer: "#containererreurtotal",
            wrapper: "p",
            errorClass: "error",
            rules: {
                nickname_in: { required: true, minLength: 4 },
                prenom_in: { required: true, minLength: 4 },
                nom_in: { required: true, minLength: 4 },
                password_in: { required: true, minLength: 4 },
                courriel_in: { required: true,  email: true },
                userdigit: { required: true }
            },
            messages: { 
                nickname_in: { required: "Nickname required!", minLength: "Nickname too short!" },
                prenom_in: { required: "Prenom required!", minLength: "Prenom too short!" },
                nom_in: { required: "Nom required!", minLength: "Nom too short!" },
                password_in: { required: "Password required!", minLength: "Password too short!" },
                courriel_in: { required: "Courriel required!", email: "Courriel must be an Email" },
                userdigit: { required: "UserDigit required!" }
            },
            invalidHandler: function(form, validator) {
                $("#containererreurtotal").show();
            },
            unhighlight: function(element, errorClass) {
                if (this.numberOfInvalids() == 0) {
                    $("#containererreurtotal").hide();
                }
                $(element).removeClass(errorClass);
            }    

        });
    });

I Я предполагаю, что вам нужен тег

вокруг каждой отдельной ошибки. Обычно я использую контейнер

    для фактического контейнера (вместо используемого вами div с именем «containererreurtotal») и
  • для каждой ошибки (этот элемент указывается в строке «оболочки»)

    Если вы укажете #containererreurtotal как отображение: нет; в вашем CSS, тогда вам не нужна первая строка в готовой функции ($ ('div # containererreurtotal'). hide ();)

16
ответ дан 1 December 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: