Javascript 如何获取动态创建的表单的值?

Javascript 如何获取动态创建的表单的值?,javascript,jquery,html,jsp,ecmascript-6,Javascript,Jquery,Html,Jsp,Ecmascript 6,下面是在我的代码中动态生成的3个表单 <form id="abc"> <input id="link" value ="aa">name <button type="submit">Submit</button> </form> <form id="abc"> <input id="link" value ="bb">name <button type="submit">Submit

下面是在我的代码中动态生成的3个表单

<form id="abc">
   <input id="link" value ="aa">name
   <button type="submit">Submit</button>
</form>
<form id="abc">
   <input id="link" value ="bb">name
<button type="submit">Submit</button>
</form>
<form id="abc">
   <input id="link" value ="cc">name
<button type="submit">Submit</button>
</form>
但无论我提交哪种形式,我总是得到第一种形式的输入值。我知道我做错了,你能解释一下我如何获得当前提交的表单的输入值吗。

HTML ID应该只用于每个元素。对于多个元素,应该使用class属性,可以在jQuery中使用$'.abc'选择该属性

HTML:


在处理动态创建的表单元素时,在将文档放入上下文时绑定其事件,即$document.onevent_name、'dynamic_element',function{…}

因此,以下代码适用于您的情况

$(document).on("submit", 'form.abc', function(){ 
    ... // you can get the form elements value here.
    var bla = $(this).find('.link').val();
    alert(bla);     
    e.preventDefault();
});
注意:避免对多个元素使用相同的id,而是使用类。

文档中元素的id应该是唯一的。用.className替换元素处的重复.id。使用事件委派为具有.className abc的表单元素附加提交事件;使用jQuery,在事件处理程序chain.val中将.link选择器和上下文设置为this,以获取当前元素的.value。 //动态html` 变量html=` 名称 提交 名称 提交 名称 提交 `; $document.readyfunction{ $document.onsubmit、.abc、函数e{ var bla=$.link,this.val; alertbla; e、 防止违约; }; $body.html; }; id应该始终是唯一的。在您的情况下,使用类作为公共选择器

这些是变化

HTML

id被替换为类

<form class="abc">
  <input class="link" value="aa">name
  <button type="submit">Submit</button>
</form>
<form class="abc">
  <input class="link" value="bb">name
  <button type="submit">Submit</button>
</form>
<form class="abc">
  <input class="link" value="cc">name
  <button type="submit">Submit</button>
</form>

您可以尝试$form submit事件来处理此问题

$(document).ready(function () {
  $("form").submit(function(e) { 
    var bla = $(this).find('#link').val();
    alert(bla);     
    e.preventDefault();
  });
});

这是一个工作示例:

文档中元素的id应该是唯一的。如果说表单是动态添加的,这对动态添加的表单不起作用!你不认为公认的答案是错误的吗?因为表单是动态的added@YogeshMistry我没有注意到。OP在依赖事件处理程序的结果时会注意到。我认为他不会。因为他已经接受了答案。真奇怪。人们会无意中发现这个问题,并认为公认的答案是错误的!:我想他不会的。如果表单实际上是动态的,OP可能会注意到。尽管需要注意,如果将事件附加到元素的javascript在html附加到文档之后附加到文档,则接受答案处的模式应该返回预期结果。如果是这样,从OP的回答或反馈中不清楚。
$(document).on("submit", 'form.abc', function(){ 
    ... // you can get the form elements value here.
    var bla = $(this).find('.link').val();
    alert(bla);     
    e.preventDefault();
});
<form class="abc">
  <input class="link" value="aa">name
  <button type="submit">Submit</button>
</form>
<form class="abc">
  <input class="link" value="bb">name
  <button type="submit">Submit</button>
</form>
<form class="abc">
  <input class="link" value="cc">name
  <button type="submit">Submit</button>
</form>
$(document).ready(function() {
  $('.abc').submit(function(e) {
    e.preventDefault();
    var bla = $(this).find('input.link').val();
    alert(bla);

  });
});
$(document).ready(function () {
  $("form").submit(function(e) { 
    var bla = $(this).find('#link').val();
    alert(bla);     
    e.preventDefault();
  });
});