Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2015, 08:58
Интересующийся
Отправить личное сообщение для artiom4356 Посмотреть профиль Найти все сообщения от artiom4356
 
Регистрация: 08.07.2015
Сообщений: 16

Отмена события
В общем есть такая проблема. То есть при сробатывании события отправки формы скрипт должен проверить какой или какие файлы были загружены(сколько файлов, их тип ну их многое другое). Пытался по разному сделать например так. Но ничего не работает.
<script>
	$('#Otpravka234134').submit(function(e){			  
			   var a=document.getElementById('ava').files;	   
	if (a.length!=1){
e.preventDefault();
		return false;
	alert("Загрузите адин файл. Тип загружаемого файла"+a[0].type);
	
	}
	}
	
			  </script>
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2015, 15:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от artiom4356
Загрузите адин файл.
Правильно пишется - адын файл.

Если a.length != 1, то зачем разрешать загрузку многих соответствующим полем, и зачем "... или какие файлы были загружены(сколько файлов, их тип ну их многое другое)."?
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2015, 19:03
Интересующийся
Отправить личное сообщение для artiom4356 Посмотреть профиль Найти все сообщения от artiom4356
 
Регистрация: 08.07.2015
Сообщений: 16

Сообщение от laimas Посмотреть сообщение
Правильно пишется - адын файл.

Если a.length != 1, то зачем разрешать загрузку многих соответствующим полем, и зачем "... или какие файлы были загружены(сколько файлов, их тип ну их многое другое)."?
Если a.length != 1 то есть равно любому другом числу кроме одного то я отменяю события. Ну а в проивном случии пользователь загрузил 1 файл и условие не выполнитца..... Только я не понемаю как отменить это самое событие отправки. И на счёт поля. Это HTML и я к нему не имею доступа на прямую. Мне нужно написать скрипт который бы работа не завсимо через какой элемент формы идёт загрузка. А на счёт типов загружаемых фалов и прочего это я поспешил... просто чуть позже хочу добавить проверку на тип вот и всё.

Последний раз редактировалось artiom4356, 18.10.2015 в 19:08.
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2015, 19:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от artiom4356
то есть равно любому другом числу кроме одного то я отменяю события. Ну а в проивном случии пользователь загрузил 1 файл и условие не выполнитца.....

Каким образом пользователь сможет загрузить несколько файлов, если ему этого не разрешать? Одним полем file загрузить несколько файлов можно только собственноручно прописав в нем multiple, и только в новых версиях браузеров, для старых с помощью нескольких таких полей?
Ответить с цитированием
  #5 (permalink)  
Старый 18.10.2015, 22:18
Интересующийся
Отправить личное сообщение для artiom4356 Посмотреть профиль Найти все сообщения от artiom4356
 
Регистрация: 08.07.2015
Сообщений: 16

Сообщение от laimas Посмотреть сообщение
Каким образом пользователь сможет загрузить несколько файлов, если ему этого не разрешать? Одним полем file загрузить несколько файлов можно только собственноручно прописав в нем multiple, и только в новых версиях браузеров, для старых с помощью нескольких таких полей?
Даже если убрать это условие.... событие серовно не отменяеца.
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2015, 04:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы где русский учили?

Отметь отправку формы:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script> 
$(function() {
    $('form').submit(function(e) {
        e.preventDefault();
        $('div').text('Value as is not sent')
    })
});
</script>     
</head> 
<body>
<form>
<input name="as" value="1" />
<button>Send</button></form>
<div></div>
</body> 
</html>


Может пояснить конкретней чего вы хотите сделать? Но с учетом того, что проверять загрузку файлов более одного при невозможности загрузить более не имеет смысла. Таковую проверку нужно делать на сервере, и зная, что клиент может отправить только один файл, при их большем количестве делать вывод, что форма левая.
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2015, 06:02
Интересующийся
Отправить личное сообщение для artiom4356 Посмотреть профиль Найти все сообщения от artiom4356
 
Регистрация: 08.07.2015
Сообщений: 16

Да к стати. Хотелось бы спросить что если мне допустим надо загрузить какую ни будь аватарку ну или просто картинку. Но прежде чем отпровлять на сервер мне надо проверить расширение этого самого изображения и его размер. Размер в смысле ширину и высоту. Как такое можно сделать?? Желательно без cavans
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2015, 06:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нужно обрабатывать событие onchange поля ввода:
$(function() {
    $('selector').change(function() {
        var im = new Image(), type = this.files[0].type;
        im.onload = function() {
            alert('Type: '+type+'\n'+'Width: '+this.width+'\n'+'Height: '+this.height)
        }
        im.src = this.value
    })
});

В IE6 тип можно было получить и с помощью свойства mimeType.
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2015, 13:28
Интересующийся
Отправить личное сообщение для artiom4356 Посмотреть профиль Найти все сообщения от artiom4356
 
Регистрация: 08.07.2015
Сообщений: 16

Не работает. alert не работает.... такое ощущение что события и вовсе нет... Библиотека сразу говорю подключена Вот код
<form id="ka">
<input type="file" id="filess" name="files[]"/>
<button type="submit">
</form>

<script>
$(function() {
    $('#filess').change(function() {
        var im = new Image(), type = this.files[0].type;
        im.onload = function() {
            alert('Type: '+type+'\n'+'Width: '+this.width+'\n'+'Height: '+this.height)
        }
        im.src = this.value
    })
});
</script>

Последний раз редактировалось artiom4356, 19.10.2015 в 13:36.
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2015, 14:10
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от artiom4356
Библиотека сразу говорю подключена
попробуйте обернуть ваш JQuery код:
(function($){
//ваш jQuery код
}(jQuery));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена .preventDefault() или возобновление события нажатия на клавишу клавиатуры antserg jQuery 15 13.06.2017 23:14
Очистка памяти, отмена загрузки картинки, отмена события. zhurchik Общие вопросы Javascript 16 23.10.2014 13:48
Отмена события по нажатию на Enter Valentinka_1 jQuery 12 01.08.2013 02:30
отмена повторного выполнения события frant32 Events/DOM/Window 13 06.10.2012 12:25
Отмена события preventDefault() , поясните пожалуйста namez jQuery 3 15.04.2010 14:54