关键依赖项:依赖项的请求是jQuery Form Validator插件上的一个表达式

时间:2019-02-20 07:03:58

标签: javascript jquery html forms

我在从jQuery Form Validator plugin加载安全模块时遇到问题:

$.validate({
    modules : 'security'
});

我正在使用webpack和Laravel-mix限制文件的大小,但出现此错误:

关键依赖项:依赖项的请求是一个表达式。

一切都很好,即使验证也可以,但是此警告可能会破坏其他要捆绑的文件。

我发现这是loadModules function的问题。

1 个答案:

答案 0 :(得分:2)

以下是解决方法: 而不是加载整个security.js或其他模块,您应该从该模块获取验证,而不是全部加载,然后将其添加到主js文件中。在这里,我需要来自security.js的确认:

import './form-validation';
  $.formUtils.addValidator({
name: 'confirmation',
validatorFunction: function (value, $el, config, language, $form) {
  var password,
    passwordInputName = $el.valAttr('confirm') ||
      ($el.attr('name') + '_confirmation'),
    $passwordInput = $form.find('[name="' + passwordInputName + '"]');
  if (!$passwordInput.length) {
    $.formUtils.warn('Password confirmation validator: could not find an input ' +
      'with name "' + passwordInputName + '"', true);
    return false;
  }

  password = $passwordInput.val();
  if (config.validateOnBlur && !$passwordInput[0].hasValidationCallback) {
    $passwordInput[0].hasValidationCallback = true;
    var keyUpCallback = function () {
      $el.validate();
    };
    $passwordInput.on('keyup', keyUpCallback);
    $form.one('formValidationSetup', function () {
      $passwordInput[0].hasValidationCallback = false;
      $passwordInput.off('keyup', keyUpCallback);
    });
  }

  return value === password;
},
errorMessage: '',
errorMessageKey: 'notConfirmed'
});


$.validate({
 form: '#signup-header',
});