0

我有输入更改功能,它适用于已经存在的第一个输入,但是当 jscript
使用 appendTo 添加另一个输入对象时,相同的功能不起作用......

$("input[type=file]").change(function() {
$('<input name="fails[]" type="file" />').appendTo('#input_lauki');
$('<a href="#" onclick="dzest(this);return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('#input_lauki')
$('.link').css('display','inline');

});

谢谢!

4

3 回答 3

0

您还需要使用$.on来绑定添加到 DOM 的新元素:

$.on("change", "input[type=file]", function() {
    $('<input name="fails[]" type="file" />').appendTo('#input_lauki');
    $('<a href="#" onclick="dzest(this);return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('#input_lauki')
    $('.link').css('display','inline');

});

或者如果您使用的是旧版本的 jQuery,则可以使用,因为它有一些特殊处理,您应该在文档中阅读。

于 2012-04-26T08:18:08.843 回答
0

当您定义更改事件处理程序时,您有定义数量的输入文件,因此您稍后插入的新输入没有为该事件定义处理程序。

您应该改为将事件捕获给父级#input_lauki

$("#input_lauki").on('change', 'input[type=file]', function() {
 ...
}

小提琴示例:http: //jsfiddle.net/TwWEt/

于 2012-04-26T08:22:03.630 回答
-1

你可以试试

$('input[type=file]').on('change',function(){

 //your code


});
于 2012-04-26T08:19:25.747 回答