我喜歡Teneff的回答是最好的,但是他的執行是有缺陷的,因爲它不符合要求只有選定的輸入被重置爲默認值。目前還不清楚OP是否希望其他輸入被清除,所以我創建了clearNonDefaults
變量。當設置爲true
時,這將清除其他輸入的值。
document.getElementById('button').onclick = function() {
form.elements['c'].value = form.elements['c'].defaultValue;
}
但首先要確保你給你的元素按鈕的ID,如:
<input id="button" type="button" value="Cancel" />
通過使用此代碼
// make sure Mozilla's very handy array extension is implemented
if(Array.prototype.indexOf === undefined)
{
Array.prototype.indexOf = function(val)
{
for (var i = 0; i < this.length; i++)
{
if(this[i] == val)
return i;
}
return -1;
};
}
var inputsToRestore, clearNonDefaults, defaults = [], elements = [];
// if you want to empty the values of inputs other than those listed in inputsToRestore, set to true.
clearNonDefaults = false;
// if you ever want to add more, just place the name in this array.
inputsToRestore = ['c'];
function onLoadHandler() {
elements = document.getElementsByTagName('input');
for (i=0; i<elements.length; i++) {
if(inputsToRestore.indexOf(elements[i].name) > -1) {
defaults[elements[i].name] = elements[i].value;
}
}
}
function resetHandler() {
for(i=0; i<elements.length; i++) {
if(inputsToRestore.indexOf(elements[i].name) > -1) {
elements[i].value = defaults[elements[i].name];
} else if(clearNonDefaults === true) {
elements[i].value = '';
}
}
}
window.onload = onLoadHandler;
document.getElementById('reset').onclick = resetHandler;
你熟悉jQuery嗎?你會更容易理解。 – ryryan 2011-04-19 13:43:08
從其他重複問題鏈中找到這個問題。這似乎是最古老的,我可以找到哪些仍然相對活躍(在過去的一年中,其他人從'12和之前的3年沒有活動)。請參閱[我的答案](http://stackoverflow.com/a/34916946/4342563)瞭解替代方案,更新(一些HTML5,ES5等)方法 – 2016-01-21 07:22:16