我有一个表格,可以上传三个不同的文件。此外,我有两个用于所有文件上传的输入字段,用于存储有关文件上传的一些信息。
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> .
</script>
<div>
<input type="file" class="file_name" name="file_name[]"onchange="getFileData(this);" />
<input type="text" class="file_name_helper" name="file_name_helper[]"/>
<input type="text" class="duration" name="duration[]"/>
</div>
<div>
<input type="file" class="file_name" name="file_name[]" onchange="getFileData(this);" />
<input type="text" class="file_name_helper" name="file_name_helper[]" />
<input type="text" class="duration" name="duration[]"/>
</div>
<div>
<input type="file" class="file_name" name="file_name[]" onchange="getFileData(this);"/>
<input type="text" class="file_name_helper" name="file_name_helper" />
<input type="text" class="duration" name="duration[]"/>
</div>
<script type="text/javascript">
function getFileData(myFile){
var file = myFile.files[0];
var filename = [file.name];
$(myFile).next("input[name='file_name_helper[]']").val(filename);
$("input[name='duration[]']").val("duration");
}
</script>
问题是,当我上传表单时,第一个字段“file_name_helper”被我拥有的选择器正确填充,但是当我对“duration”字段执行相同操作时,它不起作用。如何选择特定的持续时间字段?任何帮助,将不胜感激
从您的 中onchange="getFileData(this);"
,您将 div 中的第一个输入作为myFile
参数的引用,并且您想要选择与选择器匹配的同级,因此您可以使用.siblings
调用的方法 on $(myFile)
:
function getFileData(myFile){
var file = myFile.files[0];
var filename = [file.name];
$(myFile).next("input[name='file_name_helper[]']").val(filename);
$(myFile).siblings("input[name='duration[]']").val("duration");
}
请注意,如果您的 HTML 如上所述,则不需要将选择器传递给.next
,因为.next
默认情况下将选择紧邻的下一个元素:
$(myFile).next().val(filename);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句