javascript set html объект файла сбрасывается при отправке формы - PullRequest
0 голосов
/ 01 ноября 2011

Я разрабатываю веб-приложение, в котором у меня есть опция загрузки файла.Дело в том, что мой ввод файла скрыт, и вместо этого используются текстовое поле и кнопка, чтобы стилизовать ввод, скопировать значение ввода файла и позволить пользователю записать адрес ссылки в текстовое поле (страница загрузки php распознаеттекст в текстовом поле и выполняет действие, если текст является гиперссылкой или загрузкой файла).

Проблема в том, что когда я отправляю форму, php ловит значение ввода файла как пустое.Поэтому я удалил скрытое свойство входного файла, чтобы проверить, что было не так, и заметил, что значение ввода сбрасывается при отправке формы.Когда я не спрятан, мне требуется два нажатия кнопки, чтобы отправить форму, и я первый отвечаю за очистку файла ввода.Хотя, если я присваиваю его значение непосредственно из объекта ввода, оно отлично работает.

Что происходит?

Вот код:

<form name="frmProject" id="frmProject" method="post" target="uploadTrg" enctype="multipart/form-data" action="upload.php">
    <div>
        <input type="textbox" class="frmObject" name="fakeFile" id="fakeFile" />
        <button type="button" class="frmObject" id="btnFile" >
            <img src="images/open.png" height="20" />
        </button><br />
        <input type="file" id="trueFile" name="trueFile" />
    </div>
    <input type="button" class="frmObject" id="postDetailButton" value="Save" />
</form>

Принимая javascriptдействие в процессе отправки (и обработки формы) заключается в следующем:

$("#trueFile").live("change", function(){
    $("#fakeFile").val($(this).val());
});

$("#postDetailButton").live("click", function(){
    $("#frmProject").submit();
});

$("#btnFile").live("click", function(){
    $("#trueFile").trigger("click");    
});
...