Диалоговое окно jQuery UI для плагина jQuery Validation в ASP.NET: Может ли это работать? - PullRequest
0 голосов
/ 27 октября 2010

В настоящее время я пытаюсь запустить плагин проверки jQuery внутри диалогового окна jQuery.Код такой в ​​функции document.ready:

$("#Dialog").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 600,
    width: 590,
    modal: true,
    resizable: false,
    open: function (type, data) {
        $(this).parent().appendTo("#aspnetForm");
    },
    close: function () { }
});

$("#aspnetForm").validate({
    rules: {
        <%=txtCode.UniqueID %>: {
            required: true
        },
         <%=txtDescription.UniqueID %>: {
            required: true
        },
        <%=txtMallCode.UniqueID %>: {
            required: true
        }
    }, messages: {}
});

В функции pageLoad у меня есть:

$(".Add").unbind();
$(".Add").click(function (e) {
    e.preventDefault();
    var ctrl = GetPrefixSuffix($(this).attr('id'), 'btnAdd');

    $("#Dialog").dialog('option', 'buttons',
    {
        'Add': function () {
            if ($("#aspnetForm").validate()) {
               //Do some stuff
                $(this).dialog('close');
            }
        },
        'Cancel': function () {
            $(this).dialog('close');
        }
    });
    $("#Dialog").dialog('open');
});

На самом деле я не могу заставить диалоговое окно jQuery отображать какие-либоошибки, но он останавливается условно и не закрывает диалог.Как я могу это исправить?

1 Ответ

1 голос
/ 27 октября 2010

См. Здесь рабочий пример: http://jsfiddle.net/ryleyb/HJFep/

Основное изменение - в вашей функции Add я изменил вызов validate на valid (разницу см. В документации к плагину проверки).Мне также пришлось вернуть false, если форма была недействительной.

Я не особо понял, почему у вас была функция открытия для вашего диалога:

open: function (type, data) {
    $(this).parent().appendTo("#aspnetForm");
}

Так что мой ответ просто проигнорировал это...

...