我有一些 jQuery 允许用户通过单击“全选”复选框来选择所有复选框。
我的 jQuery 看起来像这样:
$('.select-all').on('click', function(){
// alert($(this).attr('name')); - For debugging
checkboxes = $(this).closest('.form-item').find('input[type=checkbox]');
if($(this).attr('checked'))
{
$(checkboxes).prop('checked', true);
}
else
{
$(checkboxes).prop('checked', false);
}
});
我的“全选”复选框有一个“全选”类,单击它会触发此 jQuery 代码。这一切都很好。
在表格的下方还有一个文件输入。现在由于某种原因在 IE9 中单击文件输入字段时,它也会触发上面的代码。两者没有任何联系。
这是我的文件输入 HTML:
<div id="form<?php echo $this->id; ?>_file" class="form-item">
<label for="file" class="mandatory"><span class="invisible">Mandatory field</span> Select file*</label>
<span class="clearfix"></span>
<input id="file-input" name="file" type="file" />
<p class="tl_help tl_tip">Select the file to upload.</p>
</div>
这是复选框的 HTML:
<div id="form52_country" class="form-item checkbox-group">
<label for="country" class="mandatory"><span class="invisible">Mandatory field</span> Country*</label>
<span class="clearfix"></span>
<input class="select-all" type="checkbox" name="sa" value="">Select all<br>
<input type="checkbox" name="country[]" value="al"/>Albania<br>
<input type="checkbox" name="country[]" value="ar"/>Argentina<br>
// Rest of checkboxes continue as above
</div>
这是它变得更加陌生的地方。当我取消注释 jQuery 代码中的警报并尝试单击文件输入时,它会提醒我的“全选”复选框按钮的名称。
有什么想法吗?我无法理解它,它只发生在 IE 中。似乎它将我的文件输入字段视为我的“全选”复选框字段。
谢谢
编辑 - 已解决
设法追查造成这种情况的原因。在解决此问题后,我没有在表单的其他地方关闭我的标签标签之一。