Как я могу предотвратить выполнение этой функции jQuery при каждой загрузке страницы?

Я верю, что у меня есть решение моей проблемы, но я хочу быть уверенным. Вот что у меня есть:

...
...

 
 
 
 
 
 ...



  
    Sign In
  

  
    
    

  
    

  

  

  
    
  

СейчасonSubmit ссылки на функцию jQuery - это внешний файл jQueryCalls.js. Это функция:

$(function login() {
    var formData = $('#login-form').serialize(); //Grab all submission data from login form
    $("input").prop("disabled", true); //Disable inputs for the duration of the post

    var request = $.post('E:\Additional Programs\xampp\htdocs\Vista_Ridge_Territory_System\PHP\Scripts\VRC_LoginProcess.php', formData, loginMessage);

    //Handle server-side response
    function loginMessage(data) {
        $('.header').append("nada");
    };

});

Каждый раз, когда страница загружается, эта функция выполняется - очевидно, это создает проблему, так как я отключаю вводы. Я предполагаю, что я могу решить проблему с помощью чего-то вроде этого:

$(document).ready(function login() {
  $('.login-form').submit(function() {
   var formData = $(this).serialize();
   .post('whatever', formData,...

Мне любопытно, есть ли у кого-нибудь понимание этого и почему оно выполняется при каждой загрузке страницы? В частности, мне нужно изменить атрибут действия формы, различные реализации наonSubmit, так далее? Я предполагаю, что браузер просто видит файл и выполняет содержащиеся в нем функции. Кроме того, я получаю ошибку перекрестного происхождения в консоли Chrome. Лиphp файл должен находиться в том же каталоге, что и функция jQuery? Любой вклад приветствуется.

Ответы на вопрос(1)

Решение Вопроса

Ключ здесь:

$(function login() {
});

Помните, что jQuery - это не другой язык - этоЭто просто javascript с некоторыми уже определенными вспомогательными функциями. Так что вы'перезвонить$() функция и передача функции в качестве аргумента. Тот факт, что выпереименование функции не имеет значения - этовсе еще передается в качестве параметра.$()

Когда вы звоните$() или жеjQuery() функции и передать в другую функцию, это 's ярлык для определения обработчика события, готового для документа. Итак, ваш код действительно такой же, как и это:

$(document).ready(function() {
    var formData = $('#login-form').serialize();
    $("input").prop("disabled", true);
    // the rest of your function here...
});

... что заставляет его работать при каждой загрузке страницы.

Если ты'просто определяем функцию, которая будет вызываться позже,нет никакой причины, чтобы обернуть это в$(), Вы можете определить свою функцию следующим образом:

function login() {
    var formData = $('#login-form').serialize();
    $("input").prop("disabled", true);
    // the rest of your function here...
}

Ваш ответ на вопрос