仅当文件字段不为空时才使用 jquery 验证插件验证文件扩展名

validate file extention only if the file field is not empty using jquery validation plugin

我正在努力实现,如果文件字段不为空,则只验证其他方式而不是在更新详细信息表单上。

我正在使用 https://jqueryvalidation.org/ 插件的以下代码:

 jQuery.validator.addMethod("filetype", function(value, element) {
    var types = ['jpeg', 'jpg', 'png'],
        ext = value.replace(/.*[.]/, '').toLowerCase();

    if (types.indexOf(ext) !== -1) {
            //$("#city_banner-error").html('');
        return true;
    }
    return false;
});

试试这个:

Jquery:

$(document).ready(function(){
    jQuery.validator.addMethod("filetype", function(value, element) {
    var types = ['jpeg', 'jpg', 'png'],
        ext = value.replace(/.*[.]/, '').toLowerCase();

    if (types.indexOf(ext) !== -1) {
            //$("#city_banner-error").html('');
        return true;
    }
    return false;
    },
  "Please select allowed file"
  );
  $('#frm').validate({
    rules:
    {
        file:
      {
        filetype: true
      }
    }
  });
});

Html

<form id="frm" name="frm">
  <input type="file" name="file" />
</form>

Working fiddle

无需编写任何新规则。只需使用 the extension method built into the plugin. It's part of the additional-methods.js file.

$( "#myform" ).validate({
    rules: {
        field: {
            required: true,
            extension: "xls|csv"
        }
    }
});