[英]adding events to dynamically created elements using JS or Jquery
I am creating a div block dynamically.我正在动态创建一个 div 块。 In the div, i am having text fields and one file field and one hyperlink.
在 div 中,我有文本字段、一个文件字段和一个超链接。 on clicking the hyperlink, the div tag will be removed from its parent.
单击超链接时,div 标签将从其父标签中删除。 coming to the file field, i want to add onchange event to the file, which is not working for me.
来到文件字段,我想向文件添加 onchange 事件,这对我不起作用。 Please check my code and correct me if i am wrong?
如果我错了,请检查我的代码并纠正我? this is my code:
这是我的代码:
<div id="incdiv" class="incdiv" name="incdiv">
<div id="increpeatdiv">
<input type="file" class="" id="ifile" name="ifile" onchange="return filelogValidation('ifile')"/>
</div>
<a href='#' class="fw" onclick="repeat()">add one more Incident</a>
</div>
<script>
function repeat(){
var p=document.getElementById('incdiv')
var element = document.createElement('div');
element.id='increpeatdiv'+p.children.length;
element.innerHTML='<input type="file" class="" id="ifile" name="ifile" onchange="return filelogValidation('ifile')"/>'+
'<a href='#' class="fw" onclick="delete(this.parentNode.id)">Delete Incident</a>;';
p.appendChild(element);
}
function delete(a){
var p=document.getElementById(a)
var h=document.getElementById('incdiv');
h.removeChild(p);
}
function filelogValidation(input){
var fileInput = document.getElementById(input);
var filePath = fileInput.value;
var allowedExtensions =
/(\.txt)$/i;
if (!allowedExtensions.exec(filePath)) {
alert('Invalid file type. Please Upload .txt format');
fileInput.value = '';
return false;
}
else return true;}
}
I am guessing the problem to be of id "ifile".我猜问题出在 id“ifile”上。 But I dont know how to solve it.
但我不知道如何解决它。 Can somebody help me?
有人可以帮我吗?
Check this检查这个
<div id="incdiv" class="incdiv" name="incdiv"> <div id="increpeatdiv"> <input type="file" class="" id="ifile" name="ifile" onchange="return filelogValidation('ifile')"/> </div> <a href='#' class="fw" onclick="repeat()">add one more Incident</a> </div> <script> var i = 1; //index for doing identity to ifiles like ifile_1, ifile_2... function repeat(){ var p=document.getElementById('incdiv') var element = document.createElement('div'); element.id='increpeatdiv_'+i; element.innerHTML="<input type=\"file\" class=\"\" id=\"ifile_"+i+"\" name=\"ifile\" onchange=\"return filelogValidation(this.id)\"/>"+ "<a href='#' class=\"fw\" onclick=\"delete_(this.parentNode.id)\">Delete Incident</a>;"; p.appendChild(element); i++; } function delete_(a){ var p=document.getElementById(a) var h=document.getElementById('incdiv'); h.removeChild(p); } function filelogValidation(input){ var fileInput = document.getElementById(input); var filePath = fileInput.value; var allowedExtensions = /(\.txt)$/i; if (.filePath.match(allowedExtensions)) { alert('Invalid file type. Please Upload;txt format'). fileInput;value = ''; return false; } else return true; } </script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.