2012-09-07 72 views
3

當我使用jQuery添加<input>時,新的input的值被複制到頁面的預先存在的輸入中,刷新!當使用JavaScript或jQuery添加輸入時,如果頁面刷新,將其值複製到其他輸入

運行這個頁面在Firefox:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script src="Scripts/jquery-1.8.0.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $('<input />').attr({ 'type': 'text' }).val(2).appendTo($('#cart')); 
     }) 
    </script> 
</head> 
<body> 
    <div id="cart"> 
    </div> 
    <input type="text" id="afe" /> 
</body> 
</html> 


首次加載時,原input將是空白的,並通過jQuery的加入input將有2值。

現在按F5這兩個輸入將顯示值2

發生了什麼事?

回答

4

它看起來像Firefox的自動完成越來越困惑。 Chrome不會這樣做。
請參閱jsfiddle.net/TAGkR

初始頁面加載後,它看起來像這樣在Firefox(15.01):

Input, fresh

刷新頁面/ IFRAME,它看起來像這樣!

input, stale

這可能是在Firefox中的錯誤。以下是一些可以解決此問題的方法:

  1. 將第一個輸入設置爲autocomplete="off"
    EG:<input type="text" id="afe" autocomplete="off" />

    參見this Fiddle

  2. 有沒有jQuery在原來的物理後添加新的輸入。
    EG:

    <input type="text" id="afe" /> 
    <div id="cart"> 
        <!-- JavaScript/jQuery inserts input here. --> 
    </div> 
    

    this Fiddle

+0

謝謝,自動完成關閉工作做得很好! – user1643870

+0

不客氣。樂意效勞。 –

+0

@BrockAdams您應該將JSFiddle中的相關javascript放入您的答案中。答案應該是自給自足的。如果到JSfiddle的鏈接死亡(並且他們的鏈接已經死亡了很多),那麼你的答案不再包含答案。 –

1

該問題僅適用於您的cart之後的<input>標籤。每次刷新時,它會將它們的值更新爲jQuery中的值。看看這個例子:http://jsfiddle.net/TAGkR/26/

我使用純JavaScript,看看是否有可能是一些錯誤的jQuery嘗試過,但這裏看到了同樣的錯誤仍然存​​在:http://jsfiddle.net/TAGkR/28/


編輯:在這點之下是我的舊的未知情的答案,但我會保留它以使下面的評論保持在上下文中。

我很不清楚你想完成什麼。如果你想讓新的文本框獲取其他文本框的值,我只需要在當前的Javascript中包含val函數。

$(function() { 
    $('#afe').val(
    $('<input />').attr({ 
     'type': 'text' 
    }).val(2).appendTo($('#cart')).val()); 
})​;​ 

如果你想那麼一段時間後獲得的價值,我會得到這樣的:

$(function() { 
    $('<input />').attr({ 
     'type': 'text' 
    }).val(2).appendTo($('#cart')); 

    $('#afe').val($('#cart input').val()); 
})​;​ 

如果你想澄清更多的我會很樂意回答。這正是我所描述的。

+0

其實,他是在報告小車行爲,我剛剛重複了這個問題;更多在一個月。 –

+0

謝謝,我只是不想要這個馬車行爲。購物車是我正在製作的購物車,頁面上的文本框是來自我的標題的搜索框。 – user1643870

+0

+1純JS測試用例。爲了評論的緣故,您不需要保留舊的答案!如果他們願意的話,人們可以從編輯歷史中分辨上下文。 –

相關問題