2012-06-21 46 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)相同的東西,愚蠢的錯誤。感謝大家看看。