Проверка JQuery запускается каждый раз, когда браузер получает фокус - PullRequest
0 голосов
/ 24 января 2012

Я использую плагин проверки jquery для проверки моей формы.У меня есть одно поле, которое я не хочу проверять, но каким-то образом оно все равно проверяется, и я получаю сообщение об ошибке «Пожалуйста, введите не более 5 символов».

Проверенное поле является полем type = file, и я использую его вместе с плагином Fynework jQuery MultiForm.Он не проверяется, когда я пытаюсь отправить форму, только когда я выбрал файл, имя которого длиннее 5 символов (я думаю, короткие имена работают долго, но это не так).

Я попытался добавить класс .ignore к проверяемому полю и добавил, что правило игнорирования в моем validat (), а не различие в поведении.

В чем может быть проблема?

Вот мой метод validat () , я также включаю точку, в которую я добавляю этот метод:

function addNewTicketValidation(){
                  $("#newticketform").validate({ 
                            ignore: ".ignore",
                            errorContainer: "#messageBox1",
                            errorLabelContainer: "#messageBox1 ul",
                            wrapper: "li", 
                            debug:true,
                            rules: {     
                             title: "required",                                  
                             description: "required"                                                                                     
                            }, 
                            messages: { 
                              title: "Titel saknas", 
                              description: "Beskrivning saknas" 
                            }
                          }); 
                    } 

      $("#newticketmanu").live('click',function(event){
          $("#adminarea").load("http://" + hostname + "/" + compdir + "/modules/core/newticket/newticket.php", function(){
                  $('#my_file_element').MultiFile();                    
                  addNewTicketValidation();  

          });
      }); 

Моя форма:

<form method="post" enctype="multipart/form-data" id="newticketform" class="MultiFile-intercepted" novalidate="novalidate">
        <input type="hidden" value="2000000" name="MAX_FILE_SIZE">
        <label for="title">Rubrik</label> <input type="text" name="title" id="title"><br><br>
        <label for="description">Beskrivning</label> <textarea name="description" id="description" cols="50" rows="15"></textarea><br> 

         <div id="my_file_element_wrap" class="MultiFile-wrap"><input type="file" maxlength="5" name="file[]" id="my_file_element" class="multi ignore MultiFile-applied" value=""><div id="my_file_element_wrap_list" class="MultiFile-list"></div></div>
         <div id="files_list"></div>
         <input type="submit" value="Upload" name="upload"> 
</form>

В чем может быть проблема и как ее исправить?

Спасибо!

1 Ответ

1 голос
/ 24 января 2012

Удалить атрибут maxlength = "5" из файла ввода. Это читается плагином проверки и добавляется как правило (строка 812 здесь https://github.com/jzaefferer/jquery-validation/blob/1.9.0/jquery.validate.js). Проверка спецификаций (http://www.blooberry.com/indexdot/html/tagpages/i/inputfile.htm), максимальная длина по-прежнему означает длину символа даже при вводе файла, поэтому, если вы хотите ограничить пользователя Для загрузки 5 файлов вам потребуется другой способ достижения этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...