2015-07-02 20 views
0

我試圖從動態加載的HTML更改輸入字段值。但是,我似乎無法找到正確的代碼。jQuery無法訪問表中的輸入字段

這裏是我使用的代碼:

$.get('/js/dynamic/locations', function(newRow) { 
    var existing_elem = $('.edit-table tr:last').after(newRow); 
    var appendedRow = $('table tr:last-of-type'); 
    appendedRow.find('td[data-th="Name"] > span').text(v.location_name); 
    appendedRow.find('td[data-th="Name"] > input').val(v.location_name); 
}); 

跨度文本正確更新,但輸入值不更新的。

這裏是NEWROW的價值:

<tr> 
    <td data-th="Name"> 
    <span class="edit-input-text"></span> 
    <input class="inp input-edit" type="text" name="location_name" value=""> 
    </td> 
    <td data-th="Address"><span class="edit-input-text"></span> 
    <input class="inp input-edit" type="text" name="address" value=""> 
    </td> 
</tr> 
+0

您如何知道輸入未更新? (如果您正在查看開發工具,屬性不會改變)。 – dfsq

+0

因爲我正在查看Firebug中的源代碼。量程得到更新,但輸入值沒有更新。 – V4n1ll4

+0

控制檯中有任何錯誤嗎? 'v'在哪裏定義? – George

回答

1

根據您的HTML結構和代碼,我可以告訴了肯定它的罰款和輸入值確實更新。

混淆的原因在於屬性和屬性之間的區別。他們不一樣。你如何測試輸入值已經改變?

因爲我在Firebug中查看源代碼。量程得到更新,但輸入值沒有更新。

您需要理解,因爲您正在使用val方法更新輸入 - 您正在設置輸入值屬性,而不是屬性。除非您使用setAttribute方法(jQuery中的attr)直接更新屬性,否則屬性不會更改。

+0

我設法通過將val()更改爲'attr('value',v.location_name)' - 謝謝 – V4n1ll4