1. 程式人生 > >layer.open彈出框不能獲取input框改變後的值 & textarea 取值取不到(已解決)

layer.open彈出框不能獲取input框改變後的值 & textarea 取值取不到(已解決)

之前總是以為textarea的取值有問題,翻了各種資料發現是用的layer.open導致的

問題如下:當我修改textarea的值後,觸發layer open的成功回撥函式,得到的值還是textarea之前的值,並不是改變後的值。

解決方法:

將content的$("#commentHtml").html()改成dom節點方式$("#commentHtml")即可

 

改完一個bug又來一個bug:

加上type型別就好了,(網上說彈出的dom節點層可以放在body之外,防止與本頁面造成渲染汙染,這個沒試)

HTML和DOM節點區別:

摘自layer.open官網

 

  1. /!*
  2. 如果是頁面層
  3. */
  4. layer.open({
  5. type: 1,
  6. content: '傳入任意的文字或html' //這裡content是一個普通的String
  7. });
  8. layer.open({
  9. type: 1,
  10. content: $('#id') //這裡content是一個DOM
  11. });
  12. //Ajax獲取
  13. $.post('url', {}, function(str){
  14. layer.open({
  15. type: 1,
  16. content: str //注意,如果str是object,那麼需要字元拼接。
  17. });
  18. });
  19. /!*
  20. 如果是iframe層
  21. */
  22. layer.open({
  23. type: 2,
  24. content: 'http://sentsin.com' //這裡content是一個URL,如果你不想讓iframe出現滾動條,你還可以content: ['http://sentsin.com', 'no']
  25. });
  26. /!*
  27. 如果是用layer.open執行tips層
  28. */
  29. layer.open({
  30. type: 4,
  31. content: ['內容', '#id'] //陣列第二項即吸附元素選擇器或者DOM
  32. });