我使用jquery和jquery validate plugin作为我的表单。
如果input_17
包含内容length > 1
,则需要选择文件input_1_67
。这很有效。
input_17: {
required: function(element) {
return $("#input_1_67").val().length > 1
}
}
现在,如果用户选择了一个文件,我想将“有效”类返回给input_17
。任何想法我怎么能得到这个课程?并且:我只想在
$("#input_1_67").val().length > 1
并选择一个文件。
答案 0 :(得分: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');
为了使上述内容更具可重用性,请从函数中取出文件类型数组,并将它们作为参数传递给函数。请看这个链接:http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage
其次,当您单击文件输入或单击“浏览”按钮时,将打开一个文件对话框。所以输入中唯一应该是文件名。
根据这些假设,该字段的有效性可以是一个简单的检查,看看是否有东西,这是你已经在做的。
答案 1 :(得分:0)
您可以简单地将change
事件绑定到所需的输入,即:
$('#input_1_67').change(function(){
$(this).addClass('valid');
});
答案 2 :(得分:0)
$('#input_1_67').change(function(){
if($("#input_1_67").val().length > 1)
$("#input_17").addClass('valid');
else
$("#input_17").removeClass('valid');
}
});
另外,如果您使用的是jquery验证器,则可能需要尝试
$('#input_1_67').change(function(){
$("#input_17").valid();
});
这将触发验证器方法(因为input_17有效性取决于input_1_67,它应该在input_1_67更改时验证),插件将自动设置css类。