我在下面的组中有文件输入字段。我希望所有这些都是必填字段。
<!-- file upload group -->
<div class="Fieldset FileUpGroup">
<span class="Legend">File Upload Group: (required)</span>
<input name="fileUploads[]" type="file">
<input name="fileUploads[]" type="file">
<input name="fileUploads[]" type="file">
</div>
我有以下JQuery要验证,但它只验证第一个。
$('.FileUpGroup').each(function() {
if($(this).find('input[type=file]').val() == '') {
Response('- Upload file not selected!', true);
$(this).addClass('Error').fadeOut().fadeIn();
return false;
}
else {
$(this).removeClass('Error');
}
});
谢谢!
答案 0 :(得分:11)
您在错误的元素上使用each()
:
$('input[type="file"]').each(function() {
var $this = $(this);
if ($this.val() == '') {
Response('- Upload file not selected!', true);
$this.addClass('Error').fadeOut().fadeIn();
return false;
} else {
$this.removeClass('Error');
}
});
答案 1 :(得分:0)
.val()
仅返回第一个值
在您的循环中($('.FileUpGroup').each)
仅针对一个项目激活...
DIV.FileUpGroup
元素
$('.FileUpGroup input[type=file]')
会找到所有项目,然后一次迭代一次
这是一个例子。希望我一直很有用。
$('.FileUpGroup input[type=file]').each(function() {
if($(this).val() === '') {
// wabba dabba do
}
else {
// badda bawwa do
}
});