Вызов функции из другого файла в JQuery - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в JS и JQuery. Есть ли способ вызвать функцию из одного файла в другом, как в Ruby?

* 1003 Т.е. *

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();
    }
  });

1 Ответ

0 голосов
/ 11 июля 2019

Если файл js, в котором определение функции загружено до файла js, содержащего этот вызов функции, мы можем назвать его как обычно, как указано выше, но не иначе. Вы можете сослаться эта ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...