[英]How to get value of a dynamically created form?
这是下面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>
在js中,我试图获取被单击的表单的输入值。
$(document).ready(function () {
$('#abc').submit(function (e) {
var bla = $('#link').val();
alert(bla);
e.preventDefault();
});
});
但是无论我提交哪种表格,我总是得到第一表格的输入值。 我知道我做错了这件事,您能解释一下我如何获取当前提交的表单的输入值。
document
中元素的id
应该是唯一的。 将.className
替换为<form>
和<input>
元素上的重复.id
。 使用事件委托为具有.className
"abc"
form
元素附加submit
事件; 使用带有".link"
选择器的jQuery()
和在事件处理程序上设置this
context
,链接.val()
以获得当前<input>
元素的.value
。
// dynamic `html` var html = `<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 () { $(document).on("submit", ".abc", function (e) { var bla = $(".link", this).val(); alert(bla); e.preventDefault(); }); $("body").append(html); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
在处理动态创建的表单元素时,绑定其事件,同时将document
带入上下文,即$(document).on("event_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,而应使用es class
。
id
应该始终是唯一的。在您的情况下,使用class
作为公共选择器
这是变化
的HTML
id被替换为class
<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>
JS
使用类选择器和jquery find
方法查找具有类link
的input
$(document).ready(function() {
$('.abc').submit(function(e) {
e.preventDefault();
var bla = $(this).find('input.link').val();
alert(bla);
});
});
您可以尝试$(“ form”)提交事件来处理此问题
$(document).ready(function () {
$("form").submit(function(e) {
var bla = $(this).find('#link').val();
alert(bla);
e.preventDefault();
});
});
这是工作示例: https : //jsfiddle.net/e7r14p3t/
每个HTML id
只能用于一个元素。 对于多个元素,应该使用class
属性,可以在jQuery中使用$('。abc')选择该属性。
HTML:
<form class="abc">
<input id="link" value ="aa">name
<button type="submit">Submit</button>
</form>
<form class="abc">
<input id="link" value ="bb">name
<button type="submit">Submit</button>
</form>
<form class="abc">
<input id="link" value ="cc">name
<button type="submit">Submit</button>
</form>
JavaScript:
$(document).ready(function () {
$('.abc').submit(function (e) {
var bla = $('#link').val();
alert(bla);
e.preventDefault();
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.