为什么这个jquery对话框窗口没有显示?

时间:2010-05-13 19:53:38

标签: forms jquery-validate jquery-ui-dialog

我有一个使用jquery验证的表单。当用户单击提交按钮时,我有一些jquery拦截提交,并且应该显示一个对话窗口,要求用户验证他们在表单上输入的信息。仅当表单已经过验证时,才会显示此对话框窗口。这是我的代码:

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

我的对话窗口没有显示。它只是提交表格。我通过使用检查$('#form')值的警报来验证表单是否有效。有效()

如果我删除了if语句并且只有打开对话框的行,则会显示该对话框。但是,即使表单有错误也会显示,这正是我想要阻止的。

2 个答案:

答案 0 :(得分:1)

确保在尝试打开对话框之前初始化对话框。

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

在选择器中缺少#。由于您要使用的选择器很可能是div的id,因此对话框无法打开,因为它缺少#。

$('#verification_dialog').dialog('open');

答案 1 :(得分:0)

您确定在提交和设置对话框之前在表单上调用了validate吗?

$('#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;
});