简体   繁体   English

jQuery无法从动态创建的字段获取输入值

[英]JQuery can't get input value from dynamically created field

Receiving value from static field when keyup based on input field class(.inputclass) method, but once add field dynamically its not get the value. 当基于输入字段类(.inputclass)方法键入内容时,从静态字段接收值,但是一旦动态添加字段,它就无法获取该值。

Below the sample code, Please help. 下面的示例代码,请帮助。

 $(function(){ $(document).ready(function(){ $(".inputclass").keyup(function() { alert($(this).val()); }); }); }); 
 <script src="http://code.jquery.com/jquery-1.12.4.js"></script> <form> <table width="250" border="0" cellspacing="0" cellpadding="0" id="dataTable"> <tr> <td>Field 1</td> <td><input type="text" class="inputclass" /></td> </tr> <script> var counter =1; $(function(){ $('#addNew').click(function(){ counter += 1; $('#dataTable').append('<tr><td>Field ' + counter + '</td><td><input type="text" class="inputclass"/></td></tr>'); }); }); </script> </table><br/> <input type="button" id="addNew" value=" &plusmn; Add New Field"/> </form> 

This is because when you assigned the event handler, it only assigned to the existing elements at the time. 这是因为当您分配事件处理程序时,它当时仅分配给了现有元素。

Delegate to the document : 委托给文档

$(document).on('keyup', '.inputclass', function(){
   alert($(this).val())
});

When you delegate to a parent or the document, you are using the event that bubbles up and so it doesn't matter if there are dynamic elements. 当您委托给父项或文档时,您将使用冒泡的事件,因此,是否存在动态元素并不重要。

 $(function(){ $(document).ready(function(){ $(document).on('keyup', '.inputclass', function(){ alert($(this).val()); }); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://code.jquery.com/jquery-1.12.4.js"></script> <form> <table width="250" border="0" cellspacing="0" cellpadding="0" id="dataTable"> <tr> <td>Field 1</td> <td><input type="text" class="inputclass" /></td> </tr> <script> var counter =1; $(function(){ $('#addNew').click(function(){ counter += 1; $('#dataTable').append('<tr><td>Field ' + counter + '</td><td><input type="text" class="inputclass"/></td></tr>'); }); }); </script> </table><br/> <input type="button" id="addNew" value=" &plusmn; Add New Field"/> </form> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM