Это связано с тем, что методы-обработчики событий on('click';,function...
находятся внутри другой функции main
и являются частными для main
функции. Ни в коем случае событие не будет прикреплено к элементу, если не вызывается main
.сначала вызывая main()
Также кажется, что нет необходимости помещать эти две функции в основной метод
var main = function() {
"use strict";
var addCommentForCaptureName = function() {
var $newComment = $("<p>");
var commentText1 = $(".StudentAndCourseInfo input").val();
var commentText2 = $(".StudentAndCourseInfo input").val();
if (commentText1 !== "" && commentText2 !== "") {
$newComment.text(commentText1 + ' ' + commentText2 + " is registered for the following courses:");
$(".registeredCourses").append($newComment);
}
}
$(".StudentAndCourseInfo button").on("click", function(event) {
addCommentForCaptureName();
})
}
main()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<main>
<!--Input-->
<section class="StudentAndCourseInfo">
<!--Student Info-->
<p>First Name</p>
<input type="text" name="firstName">
<p>Last Name</p>
<input type="text" name="lastName">
<button> Capture Name </button>
</section>
<!--Output-->
<section class="registeredCourses">
<h2><i><u>Registered Courses</u></i></h2>
</section>
</main>