Jquery “如何返回”;“有效”;如果输入类型为";文件";=选择文件?
我在表单中使用jquery和 如果Jquery “如何返回”;“有效”;如果输入类型为";文件";=选择文件?,jquery,jquery-validate,Jquery,Jquery Validate,我在表单中使用jquery和 如果input_17的内容length>1,则需要选择一个文件input_1\u 67。这很有效 input_17: { required: function(element) { return $("#input_1_67").val().length > 1 } } 现在,如果用户选择了一个文件,我想向输入17返回一个“有效”类。你知道我怎么上这门课吗?并且:我只想在以下情况
input_17
的内容length>1
,则需要选择一个文件input_1\u 67
。这很有效
input_17: {
required: function(element) {
return $("#input_1_67").val().length > 1
}
}
现在,如果用户选择了一个文件,我想向输入17
返回一个“有效”类。你知道我怎么上这门课吗?并且:我只想在以下情况下添加这个类
$("#input_1_67").val().length > 1
然后选择一个文件。如果您使用的是jQuery验证程序插件,那么您不必向输入中添加任何类,验证程序会为您执行此操作 据我所知,浏览器不允许您读取文件路径,也不允许为此进行设置。你唯一能得到的就是文件名。这是防止未经授权的文件访问的安全限制。您可以通过获取值来获取文件名。一旦你有了这个,你可以对文件类型做进一步的验证(但是在客户端是不可靠的)。如果要向验证器添加自定义规则以检查文件类型,则可以执行以下操作:
jQuery.validator.addMethod("filetype", function(value, element) {
var types = ['jpeg', 'png', 'gif'],
ext = value.replace(/.*[.]/, '').toLowerCase();
if (types.indexOf(ext) !== -1) {
return true;
}
return false;
}, 'Insert invalid message here');
为了使以上内容更易于重用,请将文件类型数组从函数中取出,并将其作为参数传递给函数。请参阅此链接:
其次,当您单击文件输入或单击“浏览”按钮时,将打开一个文件对话框。因此,输入中应该包含的唯一内容是文件名
根据这些假设,字段的有效性可以是一个简单的检查,以查看是否存在您已经在做的事情。您可以简单地将
change
事件绑定到所需的输入,即:
$('#input_1_67').change(function(){
$(this).addClass('valid');
});
另外,如果您使用的是jquery验证器,您可能需要尝试一下
$('#input_1_67').change(function(){
$("#input_17").valid();
});
这将触发validator方法(因为input_17的有效性取决于input_1_67,它应该在input_1_67更改时进行验证),插件将自动设置css类。代码也应该对您有所帮助。+1因为有人在没有明确原因的情况下投票否决了我们的回答。
$('#input_1_67').change(function(){
$("#input_17").valid();
});