jquery版本號碼升級不相容的問題:$("input").attr("value")功能發生改變

來源:互聯網
上載者:User

標籤:使用   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版本號碼升級不相容的問題:$(&quot;input&quot;).attr(&quot;value&quot;)功能發生改變

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.