標籤:使用 efi 沒有 jquer 項目組 asc 驗證 ack 有一個
之前項目中使用的是jquery-1.6.3.js,在這個版本號碼中,假設我們想擷取輸入框的值,能夠使用$("input").attr("value")或者是$("input").val(),這2種方式是等價的。
<input type="text" id="speed" />$("#speed").attr("value");$("#speed").val();
近期到了還有一個項目組,使用的是jquery-2.1.1.js,結果發現了問題。我使用的是IE10瀏覽器。
<input type="text" id="speed" value="45"/>$("#speed").attr("value");//始終是45
假設text控制項給了預設值,那麼使用attr("value")得到的結果始終是45,不會得到輸入控制項實際輸入的值。
<input type="text" id="speed" />$("#speed").attr("value");//始終是undefined
假設text控制項沒有設定value屬性,那麼使用attr("value")得到的結果始終是undefined。
經過測試,無論是1.6.3版本號碼,還是2.1.1版本號碼,使用val()函數。總是可以成功擷取輸入框的實際值。
<input type="text" id="speed" value="45"/>$("#speed").val();//可以得到輸入框的實際值
我又嘗試了1.9.1版本號碼,發現attr("value")和val()的表現跟2.1.1版本號碼是一致的。
不知道jquery是從哪兒個版本號碼發生改變的。反正以後大家使用jquery時須要注意這個問題。假設沒有想到版本號碼升級帶來的不相容問題。那麼可能會找不到問題的所在。由此可見版本號碼升級是一件非常有風險的事情。一定要經過充分的驗證,最好能有自己主動化的驗證用例。假設全部的測試用例都能通過,那麼基本意味著。版本號碼的API功能都是相容的,升級後風險相對來說非常小。假設不明確版本號碼發生的改變。就冒然升級。風險非常大。
jquery版本號碼升級不相容的問題:$("input").attr("value")功能發生改變