我在按钮上使用jQuery和Ajax,在输入文件上传元素上更新属性“accept”的值,然后触发点击它。但我只能在Firefox上做到这一点。在Chrome上,触发点击事件不起作用,在IE8上,它可以正常工作,但无法上传所选文件。我该怎么办? 这是我在handleAjaxResponseSuccess函数中的代码:
<button type="button" id="uploadBtn" onclick="getAcceptedExtension()"title="Upload" class=""></button>
<input type="file" name="" id="inputFile" multiple="multiple"style="display: none;" >
我的HTML代码
{{1}}
答案 0 :(得分:0)
出于安全考虑,某些浏览器不允许直接触发文件输入。 打开对话框的操作必须通过用户交互调用(例如点击)并且输入文件必须可见(显示!=无)并且重点突出。
你可以显示打开对话框,然后像这样隐藏:
getAcceptedExtension = function() {
$('#inputFile').attr('accept', '.jpg, .png');
$('#inputFile').show();
$('#inputFile').focus();
$('#inputFile').click();
$('#inputFile').hide();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="uploadBtn" onclick="getAcceptedExtension()"title="Upload" class="">CLICK ME</button>
<input type="file" name="" id="inputFile" multiple="multiple"style="display: none;" >
&#13;
答案 1 :(得分:0)
一个基本而简单的方法是:
A = randi(99,3,3,3); % example data
room = 1; % desired room
coord = 1; % desired coordinate
[~, ind] = sort(A(room,:,coord)); % get indices of the sorting
B = A; % result. Initiallize
B(room,:,:) = B(room,ind,:); % apply sorting to chairs in that room
Jsfiddle:https://jsfiddle.net/vf65pzhj/1/