Переместите тег scripts.js script
вниз под тегом jQuery script
, а затем просто переместите весь этот встроенный блок сценария в scripts.js. Поскольку jQuery уже будет создан при загрузке scripts.js, Javascript будет просто выполнять inline точно так же, как и в настоящий момент.
Также на отдельной заметке нужно поменять
$("#SubmitForm").click(Submit());
до
$("#SubmitForm").click(Submit);
Вам не нужны скобки, потому что вы не выполняете функцию на данном этапе, просто сообщаете обработчику события click, что это имя функции, которую вы хотите выполнить, когда событие происходит.
И еще один совет: вы можете заменить $(document).ready(
на $(
, то есть:
$(function() {
$("#SubmitForm").click(Submit);
});
И $
, и document.ready
могут быть включены в любое место на странице (или во внешних файлах), и пока jQuery.js находится в области видимости, они будут запускаться одновременно (после загрузки DOM) - Вам не нужно беспокоиться о том, что это последний бит кода, который нужно запустить. Вот почему вы можете переместить все это в scripts.js вместо того, чтобы назначать имя функции и ссылаться на него из встроенного скрипта.
Для записи, если вы хотите обратиться к функции по имени, просто определите ее как переменную:
var func = function() {
$("#SubmitForm").click(Submit);
};
$(func);
Как я уже сказал, это, возможно, несколько излишне в вашей ситуации, вы можете просто перенести все это в scripts.js (если, конечно, в этом есть нечто большее, чем вы упомянули в своем вопросе.
Редактировать (чтобы отредактировать вопрос) : Похоже, вы имеете дело с неправильным обработчиком событий. Вы пытаетесь назначить функцию обработчику события click для формы, тогда как вы действительно хотите назначить ее обработчику для кнопки отправки. Поэтому вы должны использовать селектор «#SubmitButton», то есть:
$("#SubmitButton").click(Submit);