带有表单验证插件的jQuery UI对话框

Jus*_*tin 6 javascript jquery jquery-ui jquery-validate jquery-ui-dialog

我目前正在为我的表单使用bassistance验证插件.我正在使用一个弹出式模式对话框来存放需要验证的表单,但由于某种原因,它不是在调用我的表单...我的所有ID和引用都在工作,我仍然没有成功.

也许有人可以为我揭开光明.这是我的Javascript代码.

$("#addEventDialog").dialog("open");

$("#addEventDialog").dialog({
    title: 'Add Event',
    modal: true,
    buttons: {
        "Save": function() {
            $("#interestForm").validate({
                submitHandler: function(form) {
                    $("#calendarWidget2").ajaxSubmit({
                        target: "#calendarResponse",
                        dataType: 'json',
                        beforeSubmit: function () {
                            $('input[type=submit]').attr("disabled", true);
                            $("#calendarResponse").show('slow');
                        },
                        success: function(response, event) {
                            if(response.status == true) {
                                $('input[type=submit]').attr("disabled", false);
                                $("#calendarResponse").delay(5000).fadeOut('slow');

                                //If the widget says it's okay to refresh, refresh otherwise, consider it done
                                if(response.refreshEvents == '1') {
                                    $("#calendar").fullCalendar("refetchEvents");
                                }
                                // Close the dialog box when it has saved successfully
                                $("#addEventDialog").dialog("destroy");
                                // Update the page with the reponse from the server
                                $("#calendarResponse").append("Successfully Added: "+ response.title +"<br />");
                            } else {
                                $("#calendarWidget2").validate();
                                $("#calendarResponse").append("ERROR: "+ response.status +"<br />");    
                            }
                        },
                        error: function() {
                            alert("Oops... Looks like we're having some difficulties.");    
                        }
                    });
                }
            });
        },
        "Cancel": function() { 
            $(this).dialog("close"); 
        } 
    }
});
Run Code Online (Sandbox Code Playgroud)

Mar*_*uay 13

我通过3个步骤解决了类似的问题:

  1. 将验证器附加到表单:

    $('#your-form-id').validate();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 单击模态表单的"保存"按钮后,提交表单(将触发验证程序):

    buttons: {
      "Save": function() {
        $('#your-form-id').submit();
      },
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将提交逻辑移动到验证器submitHandler:

    $('#your-form-id').validate({
      submitHandler: function(form) {
        // do stuff
      }
    });
    
    Run Code Online (Sandbox Code Playgroud)