1

我在 SO 和其他博客中尝试了很多解决方案,但我似乎无法完成这项工作。

我在这里使用 jQuery Validation 插件和 jQuery ui Dialog。

这是我的对话框:

$('#dialog_update').dialog({
        autoOpen: false,
        modal: true,
        width: 600,
        height: 540,
        resizable: false,
        draggable: false,
        buttons: {
            Cancel: function() {
                $( this ).dialog( "close" );
            },
            "Save": function() {
                    $("#dialog_update").submit();
                    $.ajax({
                        url: site_url + "/consultation/update/" + $("#r_id").attr("data"),
                        type: "POST",
                        data: {
                            'date'           : $("#date").val(),
                            'service_type'   : $("#service_type").val(),
                            'new_revisit'    : $("#new_revisit").val(),
                            'admission'      : $("#admission").val(),
                            'emergency'      : $("#emergency").val(),
                            'indigent'       : $("#indigent").val(),
                            'philhealth'     : $("#philhealth").val(),
                            'height'         : $("#height").val(),
                            'height_type'    : $("#height_type").val(),
                            'weight'         : $("#weight").val(),
                            'weight_type'    : $("#weight_type").val(),
                            'bp'             : $("#bp").val(),
                            'chief_complaint': $("#chief_complaint").val(),
                            'diagnosis'      : $("#diagnosis").val(),
                            'medication'     : $("#medication").val(),
                            'remarks'        : $("#remarks").val(),
                            'pid'            : id
                        },
                        dataType: "html",
                        success: function(data) {
                            obj = JSON && JSON.parse(data) || $.parseJSON(data);
                            window.location = obj.url + "/" + obj.id;                            
                        }
                    });                    
            }
        }
    });

我的验证器:

 $("#dialog_update").validate({
        errorContainer: "#errorblock-div1, #errorblock-div2",
        errorLabelContainer: "#errorblock-div2 ul",
        wrapper: "li",
        rules: {
            date: "required"    
        },
        messages: {
            date: "Please enter a date."
        },
        submitHandler: function(form) {
        jQuery(form).ajaxSubmit({
            target: '#client-script-return-data',
            success: function() {
            $('#my-modal-form').dialog('close');
            successEvents('#client-script-return-msg');
            }
        });
        }
    });

打开对话框的那个:

$(".update").click(function() {
        var r_id = $(this).attr('data');
        $("#dialog_update")
            .load(site_url + '/consultation/update_form/' + r_id, createDatepicker)
            .dialog('open');
    });

我无法进行验证。在某些时候,它会抛出一个错误,比如“设置”上的未捕获类型错误。此外,该对话框有一个日期选择器。

编辑更多信息:使用的插件:bassistance.de/jquery-plugins/jquery-plugin-validation/ 错误:Uncaught TypeError: Cannot read property 'settings' of undefined

Save此外,单击按钮时会发生该错误。当该错误显示时,日期选择器将不再关闭。请注意,我只添加了一条规则,date因为我仍在测试它。

4

0 回答 0