当用户选择文件时,我希望显示另一个文件字段.它适用于第一个文件,但如果我在第二个字段中选择一个文件,则不会再次调用它.为什么不?
jquery脚本
$(document).ready(function() {
var i = 1;
$('input:file[name$=\'uploadedFile'+(i-1)+'\']').change(function() {
var file = $(this).val();
if(file !== null && file !== "") {
$(this).after("<input type=\"file\" name=\"uploadededFile"+i+"\" />");
i++;
}
});
});
HTML表单
<form action="PHP/file.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<input type="file" name="uploadedFile0" />
<input type="submit" value="SUBMIT" />
</form>
最佳答案 当你编写$(…).change(function)时,你将把处理程序添加到当前在jQuery对象中的元素.当您添加新的< input>时,它没有任何事件处理程序.
您需要调用.live
,它将处理所有匹配元素的事件,无论它们何时被创建.
例如:
$('input:file:last').live('change', function() { ... });
请注意,选择器仅评估一次,因此它不会获取i中的更改.
相反,你应该使用:last.