2012-11-06 153 views
4

我需要使用第二個(動態生成的)div的值更新表單某些輸入字段的值。按名稱在div中選擇輸入

下面的代碼

$("#second_update_form_data :input").each(function(index) { 

//find all input fields in the second div 
       var FieldName = $(this).attr("name"); 
       var FieldValue = $(this).val(); 

    //try to get the corresponding field from the original form to change it 
       var Selector = "#TT_CartForm__form input[name=" + FieldName + "]"; 
       var OriginalFiled = $(Selector); 

這是不行的,但我不知道爲什麼。我可以爲原始輸入字段添加一個id並使用它來選擇它們,但我更願意理解錯誤並使用正確的選擇器。

由於提前, 親切的問候

編輯: 對不起,我知道我沒有指定哪部分不工作。 這是最後一行,當我嘗試使用選擇器選擇,所以它的這最後一個似乎

+1

哪一部分不工作?你關閉了你的每個功能嗎? – undefined

+1

是否有任何錯誤?也是一個隨機的註釋,但不要使用'大寫'作爲變量,除非它們是Classes/instsantiable對象。 –

+0

感謝您對命名約定的建議。是的,每個函數都是關閉的,錯誤在行var OriginalFiled = $(Selector);如果我刪除或評論它的工作,直到結束 – DavidTonarini

回答

3

更新基於on your update

var OriginalFiled = $('#TT_CartForm__form input[name="' + FieldName + '"]'); 

請嘗試更改您的報價以確保字符串可讀。要記住的其他事情,只有在指定!DOCTYPE的情況下,IE7和IE8才支持屬性選擇器。並在IE6-他們不工作ata所有

也仔細檢查您的元素ID名稱,我注意到它有兩個區域是下劃線和一個區域有2個下劃線。確保你輸入的div具有完全相同的id值

+0

啊哈,很簡單,但根本看不到! :D非常感謝您的進一步信息。 – DavidTonarini

0

變化是錯誤的:

$("#second_update_form_data :input") 

$("#second_update_form_data input") 
+0

這不會解決問題,':input'已棄用jQuery,與輸入'相同,只是較慢。 –

+0

不知道這件事。 Incase其他人發現這一點:http://bugs.jquery.com/ticket/9400有更多的細節 – DickieBoy

0

你的問題是動態生成的div。您需要使用。對()

jQuery.on()

+0

你是什麼意思?我不需要附加處理程序,我需要選擇一個現有的字段。 – DavidTonarini

2

稍快選擇:

$('#second_update_form_data').find('input').each(function(index) { 

    //find all input fields in the second div 
    var fieldName  = $(this).attr('name'), 
     fieldValue = $(this).val(), 

    //try to get the corresponding field from the original form to change it 
     selector  = 'TT_CartForm__form input[name=' + fieldName + ']', 
     originalFiled = $(selector);