Проверка входного файла

0

Я проверяю форму с помощью jquery. Все работает нормально, но не загружает файлы. здесь есть кнопка загрузки файла, которая принимает только изображения для того, что я использую Jquery, как следует,

$(document).ready(function(){


    $('#create_teacher').validate({
    rules: {
        teacherId: {

        required: true
      },

        teacherName: {
        minlength: 6,
        required: true
      },

        education: {
            required: true,
            minlength: 6
        },

        experience: {
            required: true,
            minlength: 6

        },

        prevdetails:{
            required: true,
            minlength: 6

        },
        email: {
        required: true,
        email: true
      },


        highlight: function(element) {
            $(element).closest('.control-group').removeClass('success').addClass('error');
        },
        success: function(element) {
            element
            .text('OK!').addClass('valid')
            .closest('.control-group').removeClass('error').addClass('success');
        }
    }
  });


$('#create_teacher input[type="submit"]').click(function(e){
        e.preventDefault();
        var form = $('#create_teacher');
        var file = $('input[type="file"]', form).val();
        var exts = ['jpg','jpeg','gif','png'];
        var msg = $('.msg', form);
        msg.hide();

        // first check if file field has any value
        if ( file ) {
            // split file name at dot
            var get_ext = file.split('.');
            // reverse name to check extension
            get_ext = get_ext.reverse();

            // check file type is valid as given in 'exts' array
            if ( $.inArray ( get_ext[0].toLowerCase(), exts ) > -1 ){
                msg.show().html( '<strong style="color:#090">Allowed extension!</strong>' );
            } else {
                msg.show().html( '<strong style="color:#f00">Invalid file!</strong>' );
            }
        }else{
            msg.show().html( '<strong style="color:#f00">Select file!</strong>' );
        }
    });

}); // end document.ready

и мой сборщик файлов, как следует,

<input type="file"  id="photo" name="photo" />

но это не подтверждается. Пожалуйста, помогите мне.

  • 0
    Можете ли вы дать больше советов о том, где идет плохо? Когда вы используете отладчик в своем браузере, где вы получаете неожиданные результаты?
  • 0
    Я хочу загрузить файл изображения, здесь Если я загружаю текстовый файл, он также принимает. но я думаю, что событие click не работает, потому что оно не показывает разрешенный и недействительный. ,
Показать ещё 5 комментариев
Теги:
validation

2 ответа

0

jQuery Validate фактически поддерживает это напрямую, используя дополнительные методы.js, используя правило accept.

Что бы вы сделали, это включить этот.js файл на вашу страницу и добавить правило к вашему объекту правил, который выглядит так:

photo:{
    accept:'image/*'
}

Это позволит использовать все типы изображений.

0

Убедитесь, что ваша форма выглядит следующим образом:

<form action="#" method="post" " enctype="multipart/form-data" class="" onsubmit="return Checkfiles(this);">
// ...
  <input type="file" name="file" id="file">
</form>

JQuery:

  function Checkfiles(f){
      f = f.elements;
      if(/.*\.(jpg)$/.test(f['file'].value.toLowerCase()))
        return true;
      alert('Please Upload Jpg Files Only.');
       f['file'].focus();
       return false;
};
  • 0
    У меня нет enctype, что это, и нет необходимости id?
  • 2
    @ user3377978 Да, он вам нужен, он позволяет включать файлы в данные
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню