【发布时间】:2019-02-23 12:44:49
【问题描述】:
我有一个包含一些输入字段的动态生成公式。
<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。如果您需要任何进一步的信息来帮助,只需将其写在 cmets 中即可。
提前致谢。
这是一个用于演示的小提琴:http://jsfiddle.net/tm643v8w/7/
【问题讨论】:
-
如果您可以向我们展示问题的完整工作示例,或者至少是 HTML 和 CSS,这将有助于诊断问题。另请注意,
$('#fileInput').after('.. htmlString ..').insertAfter($('.datei_anhang').last());行的逻辑非常奇怪,以至于它可能会导致 HTML 的有效性出现问题,但如果没有更多信息,则无法确定 -
嘿,我添加了一个小提琴:jsfiddle.net/tm643v8w/7。关于您的评论..我知道这不是一个完美的解决方案,但我没有得到更好的解决方案..
标签: javascript jquery file microsoft-edge html-input