Почему это диалоговое окно jquery не отображается? - PullRequest
0 голосов
/ 13 мая 2010

У меня есть форма, использующая проверку jquery. Когда пользователь нажимает кнопку отправки, я получаю некоторый jquery, который перехватывает отправку, и должен отобразить диалоговое окно с просьбой проверить информацию, введенную в форме. Это диалоговое окно должно отображаться только в том случае, если форма подтверждена. Вот мой код:

$('#form').submit(function(){
    fillVerificationDialog();   /* This loads up the dialog with form data */
    if (('#form').valid()){
        $('verification_dialog').dialog('open');
        return false;
    }
});

Мое диалоговое окно не отображается. Он просто отправляет форму. И я проверил, что форма действительна, используя предупреждение, которое проверяет значение $ ('# form'). Valid ()

Если я удалю оператор if и у меня будет строка, открывающая диалоговое окно, появится диалоговое окно. Тем не менее, он будет отображаться, даже если в форме есть ошибки, которые я пытаюсь предотвратить.

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Убедитесь, что вы инициализировали диалоговое окно, прежде чем пытаться его открыть.

$('#verification_dialog').dialog({ autoOpen: false });

Отсутствует # в вашем селекторе. Поскольку выбранный вами селектор, скорее всего, является идентификатором div, диалоговое окно не открывается, поскольку в нем отсутствует #.

$('#verification_dialog').dialog('open');
0 голосов
/ 14 мая 2010

Вы уверены, что звоните в форму для подтверждения перед отправкой и настройкой диалогового окна?

$('#form').validate();
$('#verification_dialog').dialog({
     autoOpen: false,
     buttons: {
         'OK': function() {
                 ... do form submission...
               },
         'Cancel': function() {
                 $(this).dialog('close');
               }
    }
 });
$('#form').submit(function(){ 
    if (('#form').valid()){
        fillVerificationDialog();   /* This loads up the dialog with form data */ 
        $('#verification_dialog').dialog('open'); 
    } 
    return false;
});
...