我在从jQuery Form Validator plugin加载安全模块时遇到问题:
$.validate({
modules : 'security'
});
我正在使用webpack和Laravel-mix限制文件的大小,但出现此错误:
关键依赖项:依赖项的请求是一个表达式。
一切都很好,即使验证也可以,但是此警告可能会破坏其他要捆绑的文件。
我发现这是loadModules
function的问题。
答案 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',
});