我构建了一个动态生成公式,包括一些输入字段。
<input type='file' style="width: 70%" name="anhang[]" class="anhang" id="anhang0" multiple/>
如果此输入字段已填满,则会生成一个新输入字段。这input
调用生成新字段的方法的事件侦听器是我面临的主要问题:
$(document.body).on("input", ".anhang", function (e) {
alert("input");
addFileInput();
});
var inputCounter = 0;
function addFileInput(){
inputCounter++;
$('#fileInput').after('<tr class="datei_anhang"><td style="width: 25%;">Anhang:</td><td><input style="width: 70%" class="anhang" id="anhang'+inputCounter+'" type="file" name="anhang[]" multiple/><input style="width: 20%; margin-left: 5px" type="button" class="entf" id="entf'+inputCounter+'" value="Entfernen"/></td></tr>').insertAfter($('.datei_anhang').last());
}
当我使用click
像这样的事件监听器正在工作:
$("#anhang0").on("click", function (e) {
alert("input");
addFileInput();
});
但这个解决方案并没有给我带来我想要的行为。
有人可以告诉我,为什么它在我测试过的每个浏览器中都有效,但在 Edge 中却无效?我必须如何更改事件监听器才能使其在 Edge 中工作并保持预期的行为?
我正在使用 Jquery 3.x。如果您需要任何进一步的信息来提供帮助,只需将其写在评论中即可。
提前致谢。
这是一个用于演示的小提琴:http://jsfiddle.net/tm643v8w/7/ http://jsfiddle.net/tm643v8w/7/
由于某种原因,Edge 似乎遇到了麻烦input
文件选择事件(文件输入浏览器兼容性图表 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Browser_compatibility表明 Edge 可能不会将文件输入元素的所有鸭子排成一行)。您可以使用change
事件,而不是在浏览器中获得您想要的结果(并且您可能还应该检查以确保实际上已选择文件)。例如:
$('.anhang').on('change', function(e) {
if (this.files.length) {
alert('file selected');
addFileInput();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)