Javascript 以编程方式选择<;选项>;在a<;选择>;元素,然后立即取消选择

Javascript 以编程方式选择<;选项>;在a<;选择>;元素,然后立即取消选择,javascript,jquery,html,Javascript,Jquery,Html,我用php脚本返回的文件名填充元素。上传文件后,我希望元素自动选择新上传的文件。元素中元素的值是文件名。我正在使用jQuery的.prop()函数设置所选属性。元素似乎已被选中,但它会立即取消选中 这是我的HTML: <select id="uploadedFilesSelect" name="uploadedFiles" multiple="multiple" onchange="onSelectUploadedFile();"></select> javascrip

我用php脚本返回的文件名填充
元素。上传文件后,我希望
元素自动选择新上传的文件。
元素中
元素的值是文件名。我正在使用jQuery的
.prop()
函数设置所选属性。元素似乎已被选中,但它会立即取消选中

这是我的HTML:

<select id="uploadedFilesSelect" name="uploadedFiles" multiple="multiple" onchange="onSelectUploadedFile();"></select>
javascript代码在处理上载的PHP脚本的XMLHttpRequest调用的成功处理程序中调用

观察上传文件时发生的情况,我注意到元素会滚动到新文件并短暂选择它,但随后会取消选择。另外,您会注意到我还有另一个事件处理程序,
onSelectUploadedFile()
,绑定到
onchange
事件。当我手动单击某个文件时触发此事件,但当“短暂”选中该文件时不会触发此事件

我做错了什么

编辑:完全成功处理程序

function uploadComplete(evt) {
    // Parse the returned json string
    var result = JSON.parse(evt.target.responseText);

    // Refresh the select box
    populateSelectWithFiles();

    clearFileInput();

    // Select the uploaded file in the select element
    if (result['filename']) {
        $('#uploadedFilesSelect > option:contains(' + result['filename'] + ')').prop('selected', 'selected');
    }
}
函数
populateSelectWithFiles()
调用一个php脚本,将文件名添加到
select
元素中


函数
clearFileInput()
只是通过创建一个新的文件输入元素并替换页面上的来清除文件输入元素。

您必须自己触发onchange事件,.prop()不会触发此事件。您可以使用:

$('#uploadedFilesSelect').trigger('change');

你有这个页面的链接吗?是否有其他事件被触发?模糊事件,也许。。。你能发布ajax成功的完整代码吗?@Kurt这是为了工作,不幸的是,不能共享。这可以半途而废,但我接受它!如果该选项没有保持高亮显示,则无法在其中完全工作。有办法吗?试试$('uploadedFilesSelect')。触发器('focus');越近,它会选择,但仍会立即取消选择。但是现在,当它选择时,它会变成蓝色而不是灰色。我假设蓝色是焦点颜色。
$('#uploadedFilesSelect').trigger('change');