2012-06-21 21 views
-1

如果用户选择显示div,我有一个使用动态输入的表单。我无法从动态表单字段获取价值。获取动态表单字段(jQuery)的值

下面是一个例子。

HTML(这个div仅显示当用户点击显示DIV链接)

<form id="myForm"> 

<input type="text" id="name" /> 

<a href="#" id="showDiv">Show Div</a> 

<div id="newElement" style="display:none;"><input type="text" id="newField"/></div> 

<input type="submit" name="submit" id="submit" /> 
</form> 

使用Javascript - 假设用户点击“显示格”链接,然后显示为newElement格,然后提交表格。这是在提交时运行的代码。

$("#myForm").submit(function(){ 
     alert($('#name').val()); 
     alert($('#newField').val()); 
}); 

我收到第一个警报值,但不是第二个警报值。

+0

你有多个HTML元素与id = newField?询问以防万一,因为你说你动态添加它们。 –

+0

根据你的HTML,*有*没有价值。 – hakre

+0

不,只有一个。我在这个页面上有几个动态元素,当我使用alert时,他们都没有显示在我的示例中。不知道为什么我的帖子被拒绝投票? –

回答

-1

您绑定submit事件#myForm但它尚不存在,所以你不会绑定任何东西。

你应该做的就是使用on()方法:

$(document).on('submit' , '#myForm', function() { 
    alert($('#newField').val()); 
}); 

这侦听document#myForm一个提交电话。

编辑

这不是对于这个问题的情况下,它实际上seems to work fine

+0

嗯,它确实存在,因为我的其他表单显示就好了吗?我不确定我是否遵守。也许我的原始代码是误导性的,因为我没有粘贴整个表单。 –

+0

啊误读了这个问题,你动态地设置'display'而不是元素本身 – floorish

+0

-1'如果在DOM创建时存在$(“#myForm”)'',那么就不需要这个。这就是“事件”被附加到新的输入字段。 – iambriansreed

2

我的DIV被命名为与我的表单字段(oops)相同的东西,愚蠢的错误。感谢大家看看。