Показать сообщение отдельно
  #11 (permalink)  
Старый 23.08.2011, 16:50
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

А почему не устраивает вариант с удалением и вставкой нового? Некоторые браузеры умеют очищать поле присванием value пустой строки. Зачем четыре функции, а если будет на странице десять форм, то функций станет десять?
Ваша идея может быть реализована, например, так
function ClearFile ( idForm ) {
	var form = document.getElementById(idForm), 
		formElem, 
		values = [], 
		i = 0;
	for ( ; (formElem = form.elements[i++]); ) {
		if ( /^(?:radio|checkbox)$/.test( formElem.type ) ) {
			values[i] = formElem.checked;
		} else if ( formElem.nodeName.toLowerCase() == "select" ) {
			values[i] = formElem.selectedIndex;
		} else if ( formElem.nodeName.toLowerCase() != "fieldset" && formElem.type != "file" ) {
			values[i] = formElem.value;
		} 
	}
	form.reset();
	for ( i= 0; (formElem = form.elements[i++]); ) {
		if ( /^(?:radio|checkbox)$/.test( formElem.type ) ) {
			formElem.checked = values[i];
		} else if ( formElem.nodeName.toLowerCase() == "select" ) {
			formElem.selectedIndex = values[i];
		} else if ( formElem.nodeName.toLowerCase() != "fieldset" && formElem.type != "file" ) {
			formElem.value = values[i];
		}
	}
	from = formElem = null;
}
Ответить с цитированием