2013-11-04 46 views
2

更新顯示的值這裏是jQuery的jQuery的 - 爲什麼ATTR()沒有始終如一地在屏幕上

$("input[name=displayPrice1]").attr("value", vPrice); 
$("input[name=displayPrice1]").val(vPrice); 

的兩行兩行更新類型的文本輸入的值。

這裏是一個小提琴 http://jsfiddle.net/fZm7w/

請按照下列步驟操作:
1.頁面加載後:點擊設置ATTR() - 空輸入需要的150
2.單擊附加價值並在設置attr()上再次單擊 - 兩個輸入都將獲得150
3.手動更改兩個輸入中的值 - 例如500和100
4. 點擊設置attr() - 顯示的值都不會更改,但屬性的值會發生變化
5.單擊設置VAL() - 都顯示值將被更新,但不是ATTR值,預期

爲什麼設置ATTR()設置在屏幕上時,輸入的值是空的,但是當用戶填充內容時不行?

+0

得到屬性值可能嘗試建立對jsfiddle.net一個簡單的演示,顯示這種情況的發生。這種形式很難遵守。 – isherwood

+0

你的代碼工作得很好:http://jsfiddle.net/Saturnix/rAw8J/ – Saturnix

+0

嗯,我懷疑瀏覽器做這樣的事情。它工作正常。 – FreshPro

回答

1

.val()給出的實際值是在輸入字段

.attr()僅在輸入欄的源

+0

感謝您的清除。但是如何在源文件中更改不會影響屏幕,如.attr('value',whateverString)。 很難把整個網站放在jsfiddle上,只要我能重現問題我就會上傳它 –

+0

那好吧。我仍然不知道爲什麼瀏覽器會阻止價值被過度使用,但是要感謝精確度和答案。 –

+0

attr在創建html時正在獲取對象值。 val()動態獲取對象的屬性值。 – PKolos

相關問題