3

我正在处理一个表单,它有一些文本字段和以下输入元素:

<input class='ignore' name='photo' id='photo' type='file' accept="image/*"/>   

另外,我有脚本:jQuery、jQueryUI、jQuery 验证、jQuery unobtrusive 和 unobtrusive-ajax。我认为这是最常见的一组 jQuery 脚本。

但是我遇到了非常痛苦的问题。在我在那里选择图像后,此输入始终标记为错误。对于所有浏览器也是如此。

我试图添加

$("#application-form").validate({
   ignore: ".ignore"
})

但这没有帮助。所以,我真的想知道如何处理这个问题......

PS。我还尝试通过添加此脚本而不是输入元素来使用某种解决方法:

$("#photo-container").html("<input class='ignore' name='photo' id='photo' type='file' accept='image/*'/>   ");

但得到了完全相同的行为

4

2 回答 2

5

解决了!

    $("#photo").rules("add", {
        accept: "jpg|jpeg|png|ico|bmp"
    });
于 2013-02-06T11:04:25.837 回答
4

这对我来说效果很好。

   $("#application-form").validate({
    rules: {
        photo: {
            required: true,
            extension: "jpg|jpeg|png|ico|bmp"
        }
    },
    messages: {
        photo: {
            required: "Please upload file.",
            extension: "Please upload file in these format only (jpg, jpeg, png, ico, bmp)."
        }
    },
    errorElement: "span",
    errorPlacement: function (error, element) {
        error.addClass("help-block");
        if (element.prop("type") === "checkbox") {
            error.insertAfter(element.parent("label"));
        } else {
            error.insertAfter(element);
        }
    },
    submitHandler: function () {
        //do your stuff here
    }
});

注意:您必须包含additional-methods.js这些方法,因为extension核心验证插件中不包含这些方法。

<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.js"></script>
于 2017-11-22T07:31:08.227 回答