| vpktz |
|
|---|---|
#45628 Kopusha: значение слов я понимаю, я не знаю что теперь делать, я тупой верстальщик, я бы он хотел знать языки и не кляньчить, но память у меня слабоватая ddr1 видимо ну ладно, пока Kopusha ты тут, я вопрос один задам.
Доработка скрипта sbr.tpl кастомная форма добавления файла в чате между заказчиком и исполнителем. У мменя есть форма чата общения заказчика и сиполнителя. плагина sbr в sbr.tpl
<style media="screen">
.image-upload > input
{
display: none;
}
.image-upload img
{
width: 80px;
cursor: pointer;
}
</style>
<form action="{POST_FORM_ACTION}" method="post" id="addpost" enctype="multipart/form-data">
<div class="input-group mb-3">
<span class="input-group-text" uk-tooltip="Прикрепить файл">
<div class="postfiles image-upload">
<label for="file-input">
<i class="bi-paperclip"></i>
</label>
<input class="my" id="file-input" type="file" value="Выбрать" name="rpostfiles[]" onchange="GetFileSizeNameAndType()" />
<span id="fp"></span>
<script type="text/javascript">
function GetFileSizeNameAndType()
{
var fi = document.getElementById('file-input'); // GET THE FILE INPUT AS VARIABLE.
var totalFileSize = 0;
// VALIDATE OR CHECK IF ANY FILE IS SELECTED.
if (fi.files.length > 0)
{
// RUN A LOOP TO CHECK EACH SELECTED FILE.
for (var i = 0; i <= fi.files.length - 1; i++)
{
//ACCESS THE SIZE PROPERTY OF THE ITEM OBJECT IN FILES COLLECTION. IN THIS WAY ALSO GET OTHER PROPERTIES LIKE FILENAME AND FILETYPE
var fsize = fi.files.item(i).size;
totalFileSize = totalFileSize + fsize;
document.getElementById('fp').innerHTML =
document.getElementById('fp').innerHTML
+ fi.files.item(i).name
+ '  ' + Math.round((fsize / 1024)) + 'kb';
}
}
}
</script>
</div>
</span>
<textarea class="uk-textarea form-control" type="text" aria-describedby="button-addon2" name="rposttext" maxlength="300" rows="1" style="overflow:hidden;" placeholder="Текст сообщения ..."></textarea>
<button class="btn btn-outline-secondary" uk-tooltip="Отправить" name="submit" type="submit" value="{PHP.L.Submit}" id="button-addon2">
<i class="bi-caret-right"></i>
</button>
</div>
</form>
<script type="text/javascript">
var tx = document.getElementsByTagName('textarea');//РАСТЯГИВАЕМ_textarea
for (var i = 0; i < tx.length; i++) {
tx[i].setAttribute('style', 'height:' + (tx[i].scrollHeight) + 'px;overflow-y:hidden;');
tx[i].addEventListener("input", OnInput, false);
}
function OnInput() {
this.style.height = 'auto';
this.style.height = (this.scrollHeight) + 'px';//////console.log(this.scrollHeight);
}
</script>
Есть input который позволяет мне написать сообщение и прикрепить только 1 файл и отправить. И что бы было красиво я ее сделал на bootstrap и добавил еще стилей И получилось что то вроде окно чата как на vk
Вот так когда ,нажимаю на скрепку и выбираю файл для загрузки То есть вижу, скрепку, имя файла, тип, вес
Все хорошо и красиво. но если вдруг я захотел изменить свое решение и вместо файла 546.png я хочу загрузить файл users.rar , то я опять нажимаю на скрепку и и закачиваю (подготавливаю файл к отправке ) тот самый users.rar , но имя первого файла не удаляется и получается
за вывод имя формата и веса файла отвечает скрипт который находится внутри формы видимо этот скрипт надо подкрутить что бы он значение обнулял при загрузке нового файла
<script type="text/javascript">
function GetFileSizeNameAndType()
{
var fi = document.getElementById('file-input'); // GET THE FILE INPUT AS VARIABLE.
var totalFileSize = 0;
// VALIDATE OR CHECK IF ANY FILE IS SELECTED.
if (fi.files.length > 0)
{
// RUN A LOOP TO CHECK EACH SELECTED FILE.
for (var i = 0; i <= fi.files.length - 1; i++)
{
//ACCESS THE SIZE PROPERTY OF THE ITEM OBJECT IN FILES COLLECTION. IN THIS WAY ALSO GET OTHER PROPERTIES LIKE FILENAME AND FILETYPE
var fsize = fi.files.item(i).size;
totalFileSize = totalFileSize + fsize;
document.getElementById('fp').innerHTML =
document.getElementById('fp').innerHTML
+ fi.files.item(i).name
+ '  ' + Math.round((fsize / 1024)) + 'kb';
}
}
}
</script>
Функционал input позволяет закачать только 1 файл по факту. Как сделать что бы в таких случаях , В случаях передумывания, имя первого файла удалялась Оставалось только имя последнего файла? Dit bericht is bewerkt door vpktz (2022-06-18 08:35, 3 jaren ago) |