I'm new in JS and JQuery. Is there any way to call function from one file in another file like in Ruby?
I.e.
global_validation.js
$(document).ready(function() {
var form = $('#vr-managed-form, #userRegistrationForm');
if (form.length > 0) {
var submit = form.find('input[type="submit"]');
submit.click(function (evt) {
evt.preventDefault();
var invalidInput = $('input:invalid');
if (invalidInput.length === 0) {
form.submit();
} else {
invalidInput.addClass('invalid');
validateRadios();
}
});
function validateRadios() {
var radio = $('input[type=radio]');
var radioInvalid = $('input[type=radio]:invalid');
var radioMsg = $('.radio-invalid-msg')
if (radio) {
if (radioInvalid.length > 0) {
radioMsg.addClass('invalid');
}
radio.click(function () {
if (radio.is(':checked')) {
radio.removeClass('invalid');
radioMsg.removeClass('invalid');
} else if (radio.is(':not(:checked)')) {
radio.addClass('invalid');
radioMsg.addClass('invalid');
}
});
}
}
});
And I want to use this validateRadios()
in other file. If I pack whole file in to new function like this:
function validateManager() {
$(document).ready(function() {
var form = $('#vr-managed-form, #userRegistrationForm');
// and all logic from file global_validation.js
}
And when I'm trying to simply refer to this in a different file (like below) it won't worked.
create.js
$(document).ready(function () {
var form = $('#userRegistrationForm');
var submit = form.find('input[type="submit"]');
submit.click(function(evt) {
evt.preventDefault();
$("#user-name").text(firstName + " " + lastName);
if (invalidInput.length === 0) {
form.submit();
} else {
invalidInput.addClass('invalid');
validateManager();
}
});