IE9文件输入触发了错误的点击事件

时间:2013-02-20 11:34:18

标签: jquery internet-explorer

我有一些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);
    }

});

我的'全选'复选框有一个'select-all'类,点击后会触发这个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中。似乎它正在将我的文件输入字段视为我的“全选”复选框字段。

由于

修改 - 解决了

管理以追查原因。我没有在表格的其他地方关闭我的一个标签标签,在解决此问题后,问题就停止了。

1 个答案:

答案 0 :(得分:0)

我不知道你的冲突的原因..我在ie8

面临同样的问题
 <input id="file-input" name="file" type="file" />

输入以

关闭
 <input id="file-input" name="file" type="file" ></input>