未捕获的TypeError:无法调用未定义的jquery validate的方法'call'

rak*_*esh 3 jquery jquery-validate

我的表格如下

<div id="new_image" title="Add Image">
    <form id="new_image_form" action="/reg_new_img" method="POST" enctype="multipart/form-data">
        <table width="0" border="0" cellspacing="0" cellpadding="6" class="table100">
<span class="astrix"></span>

            <tr>
                <td class="td30">Description of the Image:</td>
                <td>
                    <input name="desc" type="text" value="" />
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input id="atag" type="hidden" name="atag" value="">
                    </textarea>
                </td>
            </tr>
            <tr>
                <tr>
                    <td>Files / Image:
                        <p class="text5">X-ray / Site / Document / Agreement etc.</p>
                    </td>
                    <td>
                        <input name="image" type="file">
                    </td>
                </tr>
        </table>
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本如下.

$(document).ready(function () {

    $("#new_image").dialog({
        height: $("#new_image").height() + 150,
        width: $("#new_image").width() - 450,
        modal: true,
        autoOpen: false,
        show: {
            effect: "fade",
            duration: 200
        },
        hide: {
            effect: "fade",
            duration: 200
        },

        buttons: {
            "Submit": function () {
                $("#new_image_form").submit();
            },
                "Close": function () {
                $('#new_image').dialog("close");
            }
        }
    });

    $('#new_image_form').validate({
        rules: {
            desc: {
                required: true,
                minlength: 10
            },
            image: {
                required: true,
                accept: "image/*"
            }
        },
        messages: {
            image: {
                required: "only Image files accepted",
                accept: "Please upload only image",
            },
        },
        submitHandler: function (form) {
            $('#new_image_form').ajaxSubmit({
                success: function (data) {
                    console.log(data);
                    $('#new_image').dialog("close");
                    $(':input', '#new_image_form')
                        .not(':button, :submit, :reset, :hidden')
                        .val('')
                        .removeAttr('checked')
                        .removeAttr('selected');
                }
            });
            parse_patients();
        }
    });
    $('#new_image').dialog("open");
});
Run Code Online (Sandbox Code Playgroud)

我在js小提琴上有这个代码

http://jsfiddle.net/rakeshpatil1983/ctL7q/

当我实际将图像文件放在chrome浏览器控制台上时单击提交时出现错误

未捕获的TypeError:无法调用未定义的方法'call'

我无法解决这个问题.此代码似乎适用于其他一些页面.

755*_*755 11

在#new_image_form的规则中,"accept"不是默认的jQuery Validator默认规则.您必须使用以下默认规则之一:Jquery Validate - 类列表或定义您自己的自定义规则,如:jQuery Validate Plugin - 如何创建简单的自定义规则?

编辑:从下面的评论:有一个名为accept的规则是jQuery Validate插件包的一部分.您只需要包含additional-methods文件即可使用它.