我是JS和JQuery的新手。有没有办法像Ruby一样从另一个文件中的一个文件调用函数?
即
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');
}
});
}
}
});
我想在其他文件中使用此validateRadios()
。如果我将整个文件打包成这样的新功能:
function validateManager() {
$(document).ready(function() {
var form = $('#vr-managed-form, #userRegistrationForm');
// and all logic from file global_validation.js
}
当我试图在另一个文件中简单地引用它时(如下所示),它将无法正常工作。
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();
}
});