2014-03-24 61 views
3

我有一個頁面,其中有一些<input type="text">字段。每個字段旁邊都有一個按鈕。我允許用戶更改輸入字段的文本。但是,當用戶單擊輸入字段旁邊的按鈕時,需要將相應的輸入字段值恢復爲默認(上一個)值。我試圖用index作爲輸入字段的名稱來創建一個數組。該數組可以存儲默認值,並且可以輕鬆檢索並恢復到相應的字段。我試圖用keyup(function()來做到這一點,但我知道這會觸發每次按鍵。如何恢復文本字段的默認值 - jQuery

這是我的HTML;

<input class="zx" type="text" name="qwer" value="Google" /><button class="cncl">X</button><br /> 
<input class="zx" type="text" name="qwer" value="Yahoo" /><button class="cncl">X</button><br /> 
<input class="zx" type="text" name="qwer" value="Bing" /><button class="cncl">X</button><br /> 
<input class="zx" type="text" name="qwer" value="Ask" /><button class="cncl">X</button><br /> 

Here是小提琴。

如何將缺省值恢復到字段?

在此先感謝... :)

+0

什麼叫前值是什麼意思?創建輸入時的原始值 –

+0

爲什麼不只是'$('form')[0] .reset()'? – putvande

+0

爲什麼不使用佔位符屬性,並在檢查提交的值是否具有值之後執行表單處理 –

回答

5

試試這個,使用.attr('value')獲得默認值:

$('.cncl').on('click', function() { 
    $(this).prev().val($(this).prev().attr('value')); 
}); 

DEMO

+0

我該如何在此處執行此操作? http://jsfiddle.net/blasteralfred/VQE6b/2/ –

+0

你需要使用'.prevAll('。zx:first')'然後像這樣http://jsfiddle.net/VQE6b/3/ – Anton

+0

我得到'function(){return this.defaultValue; }'作爲價值:( –

6

您可以使用輸入元素的defaultValue財產

$('.cncl').click(function(){ 
    $(this).prev().val(function(){ 
     return this.defaultValue; 
    }) 
}) 

演示:Fiddle

+2

這似乎是「最乾淨」的方式來做到這一點。我最初想到了將它保存到一個變量,然後恢復它,但它似乎是更多的工作比neccesary。 – Parrotmaster

+1

@Protrotmaster我認爲這是最乾淨的方法.. –

+0

有沒有什麼辦法可以使用類名實現相同? –

1

我在過去做過類似的事情。我將默認值存儲在html標籤本身的屬性中。

<input class="zx" type="text" name="qwer" default-value="Google" value="Google" /> 

當你想恢復它,你可以執行

$('selector').val($('selector').attr('default-value')); 
+1

這很整齊。它允許開發人員設置一個默認值,而不是初始值。這會令人困惑,因爲我無法想象一個人會想要這個功能的情況。仍+1。 – Parrotmaster

+0

在我的情況下,它的形式有很多來自服務器端的值輸入。然後,當用戶更改值時,他/她可以單擊撤消將其恢復爲保存在數據庫中的值。 – burktelefon

+0

+1 ..不錯的解決方案.. :) –