使用jQuery在没有回发的情况下对FILE类型的INPUT进行客户端验证

时间:2011-01-02 05:36:16

标签: asp.net jquery jquery-validate asp.net-mvc-3

我想在客户端检查在提交表单之前是否已选择文件。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm("Upload", "Files", FormMethod.Post, new { enctype = "multipart/form-data" }))
        { 
            <input id="File" name="File" type="file" size="80" />
            <input type="submit" name="name" value="Upload" />    
        }

目前此表单正在进行回发以进行验证。出了什么问题?

3 个答案:

答案 0 :(得分:8)

@xOn是关于无法修改文件元素的权利,但您应该能够对其进行验证。

这是一个文件元素,它使用不显眼的验证来确保字段在提交之前具有值和正确的扩展名。

<input type="file" 
    id="myImg" 
    name="logo" 
    data-val="true" 
    data-val-required="Oops, select the logo first!"
    accept="jpg|jpeg"
    data-val-accept="Sorry, we only accept jpegs." />

答案 1 :(得分:3)

“file”类型的输入是一个安全敏感的控件,不能通过DOM编写脚本。想象一下,点击一个页面,该页面将控件的值设置为敏感文件的一个众所周知的位置并自动提交表单。这个控件最后一次是可编写脚本的,大概是1995年或1996年。对于互联网安全而言,这是一个非常愚蠢的时期。

答案 2 :(得分:0)

<input type="file" name="path" required>

这适用于html5