javascript中Form有個reset()方法可以將From中的控制項重設,還原為預設值。但是,當頁面中的控制項有初始值時,reset()方法並不能將控制項的值清空,這在很多情況下並不是我們想要的。我這個方法可以將頁面中的控制項的值完全清空,代碼如下:
Code
function clearForm(formName) {
var formObj = document.forms[formName];
var formElemnets = formObj.elements;
for (var i=0; i<formElemnets.length; i++) {
var element = formElemnets[i];
if (element.type == 'submit') { continue; }
if (element.type == 'reset') { continue; }
if (element.type == 'button') { continue; }
if (element.type == 'hidden') { continue; }
if (element.type == 'text') { element.value = ''; }
if (element.type == 'textarea') { element.value = ''; }
if (element.type == 'checkbox') { element.checked = false; }
if (element.type == 'radio') { element.checked = false; }
if (element.type == 'select-multiple') { element.selectedIndex = -1; }
if (element.type == 'select-one') { element.selectedIndex = 0; }
}
}
因為我們知道輸入元素的類型,即標籤<input> type屬性的合法值為:"button","checkbox","file","hidden","image","password",'"radio"',"reset","text"和"submit",就這麼幾種類型。我們就可以根據這些類型來初始化控制項的值。當然我們還可以根據<input>標籤的name屬性來初始化一部分控制項的值,即用document.getElementsByName()方法來擷取頁面中部分控制項,並初始化他們的值。