трабла с <form target="_blank">

фриман

Новичок
трабла с <form target="_blank">

общем есть форма:
----------CODE----------------
<form name="forma" action="scriptec.php" method="post" enctype="multipart/form-data" target="_blank">
Upload file:
<input type="file" name="fileupload" onkeypress="return false" onpropertychange="forma.submit();">
</form>
-------END CODE-------------

После выбора файла, включается метод onpropertychange, откуда вызывается submit().
Все нормально, отправляется, открывается новое окно с результатом.

Вопрос:
1. Как автоматически очистить это поле("INPUT type=file")?
(обновлять страницу, по условию, нельзя)

А вообще как нибудь можно узнать что поле "INPUT type=file" содержит данные или оно пустое(да, нет)? а то после вызова reset(), "оно" реагирует что значение поля изменено и повторно включает метод onpropertychange.

MSDN облазил ничего в помощь не нашел

может кто знает? :confused:

-~{}~ 24.05.06 22:19:

вариант есть, только если использоать irfame и обновлять. Но использовать это не желательно бы.
 

vasa_c

Новичок
фриман, в целях безопастности доступ к элементу input с type="file" из js запрещен.
 

SelenIT

IT-лунатик :)
vasa_c, не дезинформируй народ. Запрещено только менять value, а читать его и проверять value.length != 0 (к примеру) - вполне можно.
 

фриман

Новичок
SelenIT
я счастлив! Спасибо!

-~{}~ 25.05.06 15:36:

может кому пригодится:

PHP:
<script language="JavaScript">
function resa() 
{
	if (document.forma.fileupload.value.length !=0)
	{
		document.forma.submit();
		document.forma.reset();
	}
}
</script>
<form name="forma" action="scriptec.php" method="post" enctype="multipart/form-data" target="_blank">
Upload file:
<input type="file" name="fileupload" onkeypress="return false" onpropertychange="resa();">
</form>
-~{}~ 25.05.06 16:09:

--- Дабавлено:

Падлюка, в опере не срабатывает метод onpropertychange

Никто не знает как мона обойти?
 

фриман

Новичок
SelenIT спасибо :)

-~{}~ 25.05.06 17:06:

Не одно так другое:

встроил на форуме, IE ругается
-------------------------
"document.forma.fileupload" - есть Null или не является объектом
-------------------------
хотя сам код, отдельно, работает отлично... а уже в форуме ругаться начинает.

В Opere тож "молчит" как партизан, опять же отдельно код работает идеально.

-~{}~ 25.05.06 17:06:

так хочется сделать без кнопки submit =(
 

Scud

Новичок
дай форме id <form id='forma' ...>
и
var forma = document.getElementById('forma');
 

фриман

Новичок
похоже вложенные формы не канают... :\

-~{}~ 25.05.06 18:09:

а можно как нибудь вызвать кнопку "Обзор" с помощью javascript ?
было бы вообще супер!

-~{}~ 25.05.06 18:10:

у гугля вроде успешно используется... а как посмотреть хз, у меня не получилось
 

SelenIT

IT-лунатик :)
фриман
Вложенные формы не канают (а куда должна была бы канать вложенная форма, на свой action или родительский?)

Что можно сделать с кнопкой Browse - посмотри здесь: http://www.quirksmode.org/dom/inputfile.html
 

SelenIT

IT-лунатик :)
Ух ты... 8-я flash в самом деле овладела file upload-ом.

Я был не в курсе, спасибо physh за наводку. Хотя надо бы еще посмотреть, насколько эта новая фича безопасна...
 

фриман

Новичок
SelenIT
Вот моя форма каторою хочу прикрутить http://chuhodi.nm.ru/imghost.htm (отлично работает в IE 6.0 в Opera 9.b2)

Вот например в форуме форма для написания сообщения http://img227.imageshack.us/img227/7231/untitled18mk1.png (14кб)
От верхней до нижней (синих линий) действует оргинальная форма форума.
Например я хочу свою забацать, свою форму где нить (отмечено красным), ну для юзера удобное место.
Получается вложенная форма не срабатыает, якобы не может найти указанный мной control данном случае "fileupload"

крайняком остается iframe... но всеж не хочется его использовать.
Flash принципиально, не желательно. Спасибо.


Помогите выбраься из тупика :)
 

SelenIT

IT-лунатик :)
В принципе можно в коде вынести форму upload'а наружу "оригинальной", а на страничке хитро спозиционировать (position:absolute) в нужное место. Но iframe для такой задачи, имхо, пожалуй даже уместнее.
 

фриман

Новичок
SelenIT, спасибо за советы и ответы... позже решу какой вариант оставить.

Всеж, интересно, как gmail, по ссылке, нажимает кнопку "обзор"... :)
 

AdminGorkyRu

Новичок
а если попробовать в основной форме оставить только скрытые поля:
<form>
<input type="hidden" name="name" id="h_name">
... etc
</form>

а в месте, где нужно пост вводит отсавить только инпуты без формы:
<input type="text" id="v_name">
...

внизу button на онклик переносишь все значения из видимых полей в скрытые и делаешь сабмит...

соотвественно ты сможешь свою форму с полем file спокойно перемешать с видимыми полями.
 
Сверху