例如,我們有值=「沃利」 HTML輸入:如何在用戶更改後獲得實際輸入值(使用jQuery)?
<input type="text" value="wally" />
如何得到這個老「沃利」值用戶後(使用jQuery)改變呢?我試圖用.attr(),.prop(),.val()得到它,但是它們都返回用戶輸入的新值。您可以測試code on jsfiddle。嘗試更改輸入值並單擊「獲取」藍色按鈕。
P.S.包含在jsfiddle中的jQuery 1.7.2。
例如,我們有值=「沃利」 HTML輸入:如何在用戶更改後獲得實際輸入值(使用jQuery)?
<input type="text" value="wally" />
如何得到這個老「沃利」值用戶後(使用jQuery)改變呢?我試圖用.attr(),.prop(),.val()得到它,但是它們都返回用戶輸入的新值。您可以測試code on jsfiddle。嘗試更改輸入值並單擊「獲取」藍色按鈕。
P.S.包含在jsfiddle中的jQuery 1.7.2。
底層DOM元素的使用defaultValue
:
var input = $(this).closest('form').find('input');
console.log(input[0].defaultValue);
和當然,如果你使用jQuery 1.6或更高版本,可以使用prop('defaultValue')
爲(及更早版本,attr('defaultValue')
可能有效):
var input = $(this).closest('form').find('input');
console.log(input.prop('defaultValue'));
你可以使用像另一個屬性:
<input type="text" value="wally" oldVal="wally" />
然後用
input.attr('oldVal');
oldVal不是有效的屬性。 data-oldval會是。 – 2012-07-27 09:19:14
這沒有必要。 – 2012-07-27 09:21:17
使用element.defaultValue;元素當然是輸入字段。 如果首先使用JavaScript填充元素,只需添加一個新的數據屬性即可。
例如數據默認值=「wallie」
你可以存儲在輸入元素的數據容器的默認值,那麼當用戶點擊Get按鈕(除非你總是希望更新的數據值有權訪問默認值,而不僅僅是最後一個值)。
要記住的值修改前..
$('input').focusin(function(){
$(this).data('oldValue', $(this).val());
});
而且使用它找回來..
$('input').change(function(){
var old = $(this).data('oldValue'); //old value
var new = $(this).val(); //new value
})
見工作example here。
嘗試改變輸入值幾次,每次「oldValue」將被改變。最好在頁面加載後記住「oldValue」一次。 – webvitaly 2012-07-27 09:39:37
這個問題有足夠的答案。 但是,如果您需要代碼背後或服務器端的舊值,那麼還有其他解決方法會很有幫助。
爲您的頁面添加一個具有相同值的隱藏字段。所以如果你需要舊值使用隱藏字段的值。這樣做,您將在客戶端和服務器端獲得舊值。
downvoter請告訴downvoting的原因嗎? – Narendra 2012-07-27 11:19:00
你可能對它有更多的經驗,是否有'.getAttribute('value')'的跨瀏覽器問題? – 2012-07-27 09:21:51
@FelixKling:就我可以扔掉史蒂夫鮑爾默而言,我不會相信IE,特別是IE7。而我知道'defaultValue'已經工作了15個多年。我*認爲*我嘗試了'getAttribute',發現它不可靠,但我必須做一個實驗才能確定。 – 2012-07-27 09:22:35
這不是很遠......;)謝謝! – 2012-07-27 09:23:38