Я боролся за попытку получить jquery-validation для работы в моем проекте, но он просто не привязан к моему объекту jquery.jquery-validation Модуль NPM с браузером
Мой package.json выглядит это:
{
"name": "web01",
"version": "1.0.0",
"dependencies": {
"jquery": "2.1.3",
"pathjs": "0.8.1",
"jquery-validation" : "1.13.1"
},
"devDependencies": {
"browserify": "8.0.2",
"browserify-mustache": "0.0.4",
"browserify-shim": "3.8.2",
"phantomjs": "1.9.13",
"mocha-phantomjs": "3.5.2",
"mocha": "2.1.0",
"sinon": "1.12.2",
"proxyquireify": "1.1.0"
},
"browserify": {
"transform": [
"browserify-mustache",
"browserify-shim"
]
},
"browserify-shim": {
"jquery" : "$",
"jquery-validation": {
"exports": "null",
"depends": [ "jquery" ]
}
}
}
НПМ установить кирки все вверх нормально, но когда я пытаюсь позвонить проверить в файле JS я просто получаю сообщение об ошибке сказав, что функция не определена. Я просмотрел около полутора десятков вопросов о стеке, но они не решили мою проблему. Я бы ожидал, что для подтверждения будет добавлен объект jquery, не уверен, что мне нужно вызвать require ('jquery-validation') в моем js-файле.
var $ = require('jquery');
var ajax = require('./ajax.js');
var constraints = {
rules: {
email: {
required: true,
email: true
},
displayName: "required",
password: {
required: true,
minlength: 6,
pattern: "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).+$"
}
},
messages: {
required: "Email not provided",
email: "this ain't no email"
},
displayName: {
required: "display name required"
},
password: {
required: "password required",
minlength: "not long enough",
pattern: "isn't complicated enough"
},
submitHandler: function($form) {
var data = extractData($form);
ajax.send({
type: 'POST',
url: '/register',
data: data,
error: function() {
console.log('failed to register');
}
});
function extractData($form) {
return {
email: $form.find('#email').val(),
displayName: $form.find('#displayName').val(),
password: $form.find('#password').val()
};
}
}
};
function registration(e) {
e.preventDefault();
$('#registration-form').validate(constraints);
}
module.exports = {
selector: '#registration-form',
registration: registration
};
У кого-либо была аналогичная проблема/любые идеи о том, как решить эту проблему? Я мог бы использовать validate.js, но я предпочел бы использовать плагин jquery, если это возможно.
Благодаря
Что делает ли *** *** исходный код страницы *** вам? Правильно ли включен jQuery и плагин? Что скажет вам консоль об ошибках? – Sparky
Плагин не включен в отображаемый источник, но jQuery. Ошибка указывает, что функция не определена при попытке отправить регистрационную форму – Tom
Итак, вы понимаете, что вам нужно выяснить, как включить плагин. Это какая-то помощь? https://github.com/jzaefferer/jquery-validation/issues/1339 – Sparky