每次浏览器获得焦点时都会触发JQuery验证

时间:2012-01-24 09:52:34

标签: javascript dom jquery-validate validation

我正在使用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 个答案:

答案 0 :(得分:1)

从文件输入中删除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个文件上传你需要一些其他方法来实现这一点。