2013-04-03 5 views
1

Я пытаюсь настроить jQuery Validate dependency-expression, чтобы пользователи могли либо использовать текстовое поле, либо загрузить файл, но этот код не работает: оба поля всегда требуются. Я предполагаю, что <input type="file"> не поддерживается #id:empty, но что я могу использовать вместо него?jQuery Validate dependency-expression

Here's a jsFiddle.

Javascript:

jQuery(document).ready(function() { 
    jQuery("#form1iienom").validate({ 
     errorClass:"errorlabels", 
     rules: { 
      form1apptext: { 
       required: "#form1upload:empty" 
      }, 
      form1upload: { 
       required: "#form1apptext:empty", 
       extension: "jpg|jpeg|pdf|png|doc|docx" 
      }, 
     }, 
     messages: { 
      form1apptext: "You must either enter a reason for your nomination or upload a file.", 
      form1upload: { 
       required: "You must either enter a reason for your nomination or upload a file.", 
      }, 
     } 
    }); 
}); 

HTML:

<form name="form1iienom" id="form1iienom" method="post" action="/applications/iie/review" enctype="multipart/form-data"> 
<textarea name="form1apptext" id="form1apptext"></textarea><br /> 
<br /> 
<em>(allowed file types are jpg, jpeg, pdf, png, doc, and docx; maximum file size is 3 MB)</em> 
<input type="hidden" name="MAX_FILE_SIZE" value="3145728" /> 
<input type="file" name="form1upload" id="form1upload" /><br /> 
<input type="submit" value="Submit" /> 
</form> 

ответ

1

As per documentation, правильный селектор :blank, не :empty.

Также see the example, as per documentation, используя depends подправила ...

rules: { 
    contact: { 
     required: true, 
     email: { 
      depends: function(element) { 
       return $("#contactform_email:checked") 
      } 
     } 
    } 
} 
+1

Изменение в ': blank' работал. Извините, и спасибо! – vaindil