为什么我的自定义方法验证空输入?

时间:2017-12-16 01:06:31

标签: javascript jquery jquery-validate

我有一个用于验证Youtube链接的自定义方法,一切都很好但是当输入留空时它仍然会触发。

如果输入留空,我怎么能不触发自定义方法,但仍然可以验证输入的是什么?

方法

jQuery(function() {
  var youtubePattern = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;

  jQuery.validator.addMethod("youtubeVideo", function(value) {
      return youtubePattern.test(value);
  }, "Must be a valid Youtube video");
});

验证

$( "#addPostsForm" ).validate({
 rules: {
    post_video: {
        youtubeVideo: true
    }
}

1 个答案:

答案 0 :(得分:-1)

为什么不简单地在验证器函数中添加对值长度的检查?

jQuery(function() {
  var youtubePattern = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;

  jQuery.validator.addMethod("youtubeVideo", function(value) {
      if (value.length == 0){
          return false;
      }
      return youtubePattern.test(value);
  }, "Must be a valid Youtube video");
});