javascript - 验证新创建的元素

标签 javascript jquery live

我在使用输入类型文件时遇到问题

代码如下,

默认输入文件:

<div id="div_attachment">
   <input name="f_attachment[]" type="file" class="file" id="f_attachment">
   <input type="button" id="tb_more_files" value="more file"/>
</div>

和 jquery 代码:

$("input#tb_more_files").click(function(){
   var new_file = $("<div><input id='f_attachment' name='f_attachment[]' type='file' class='file'/><input type='button' id='tb_remove' class='remove_file'></div>");
   $("div#div_attachment").append(new_file);
});

我用这个验证附件文件的扩展名:

f_attachment = $("input#f_attachment").val();
FileType = f_attachment.split('.').pop().toLowerCase();

   if(f_attachment == null || f_attachment == ""){
       alert("Attachment is Empty");
   }else if($.inArray(FileType, ['gif','png','jpg','jpeg']) == -1){
       alert("Invalid Type of File Attachment");
   }

问题是,当我点击更多文件按钮时 并出现输入文件元素, 当它有空值或空值或不同的文件类型验证时,我无法验证它!

我尝试使用 .live() 方法,但我不知道如何...

请帮忙!

最佳答案

$('#div_attachment').on("change",".file", function(event) {
  value = $(this).val(); // the value of the file element
  // do validation
});

这会监听元素 div_attachment(您的父 div)中具有类 file 的所有元素的 change 事件并处理您的验证.使用 on() 意味着即使是新创建的 DOM 元素也会应用事件处理程序

您需要注意的一件事是对多个元素使用相同的 ID - 您最好使用一个类。

更新

要执行检查 onsubmit() 使用 each() 方法:

$('.file').each(function(index) {
    value = $(this).val();
    // some validation for $(this) using value
});

注意:使用 $('.file') 选择器获取类为 file 的所有元素

Docs for each() , Docs for on()

关于javascript - 验证新创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725366/

相关文章:

jquery - 尝试使用 live()、delegate 和 bind() 提交表单

javascript - 在 Highcharts 中分割显示图例

jquery - 如何从 JQuery 中的属性设置 CSS 值

javascript - 试图跟踪 firefox 中未完成的 AJAX 请求的数量

javascript - id 的 Tabulator.js 可访问性不起作用

javascript - 如何制作响应式图像 map ,其中图像和热点会随窗口自动调整大小?

javascript - 如果我希望在加载页面时立即触发它,我应该在此处放置什么 jQuery 方法?

iphone - 缩放实时 iPhone 相机 View 位于中心, "CGAffineTransformTranslate"不起作用

javascript - 当数组通过 props 时,Vue js v-for 不起作用

javascript - ES6 解构 : How do I create a new object that omits dynamically referenced keys