Guest User

regform js

a guest
Apr 1st, 2016
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.11 KB | None | 0 0
  1. //Education Info Constructor
  2. function EducationInfo() {
  3. this.educationLevel = ko.observable();
  4. this.schoolName = ko.observable();
  5. this.completed = ko.observable();
  6. this.startDate = ko.observable();
  7. this.endDate = ko.observable();
  8. };
  9.  
  10. function LangTesting() {
  11. this.langTest1 = ko.observable(false);
  12. this.langTest2 = ko.observable(false);
  13. this.langTest3 = ko.observable(false);
  14. };
  15.  
  16. function WorkTesting() {
  17. this.jobOffer = ko.observable(false);
  18. this.collegeOfTrades = ko.observable();
  19. this.canadaApprenticeProcess = ko.observable();
  20.  
  21. this.choice1 = ko.observable();
  22. this.choice2 = ko.observable();
  23. this.choice3 = ko.observable();
  24. this.choice4 = ko.observable();
  25. };
  26.  
  27. //Work Info Constructor
  28. function WorkInfo() {
  29. this.workTitle = ko.observable();
  30. this.workName = ko.observable();
  31. this.typeOfWork = ko.observableArray([]);
  32. this.yearsExp = ko.observable();
  33. this.countryOfEmployment = ko.observable();
  34. this.jobOffer = ko.observable();
  35.  
  36. };
  37.  
  38. //User Constructor
  39. function User() {
  40. this.firstName = ko.observable();
  41. this.lastName = ko.observable();
  42. this.email = ko.observable();
  43. this.skype = ko.observable();
  44. this.birthday = ko.observable();
  45. this.preferredLanguage = ko.observable();
  46. this.tradeInterest = ko.observable();
  47. this.consentRegistration = ko.observable();
  48. this.approvedImmigrate = ko.observable();
  49. this.originCountry = ko.observable();
  50. this.immigrateOntario = ko.observable();
  51. this.livingOutsideCanada = ko.observable();
  52. this.tradesKnowledge = ko.observable();
  53. this.referal = ko.observable();
  54. this.username = ko.observable();
  55. this.password = ko.observable();
  56. this.uciNumber = ko.observable();
  57. this.gender = ko.observable();
  58. this.immigrationStatus = ko.observable();
  59. this.consentResearch = ko.observable();
  60. this.driversLicense = ko.observable();
  61. this.englishTesting = ko.observable(new LangTesting());
  62. this.frenchTesting = ko.observable(new LangTesting());
  63. this.workTesting = ko.observable(new WorkTesting());
  64.  
  65. this.id = ko.observable();
  66. this.guid = ko.observable();
  67.  
  68. this.workHistory = ko.observableArray([]);
  69. this.educationHistory = ko.observableArray([]);
  70.  
  71. this.step = 1;
  72. this.displayStep1 = ko.observable(true);
  73. this.displayStep2 = ko.observable(false);
  74. this.displayStep3 = ko.observable(false);
  75. this.displayStep4 = ko.observable(false);
  76. this.displayStep5 = ko.observable(false);
  77. this.displayStep6 = ko.observable(false);
  78. };
  79.  
  80. //Main Knockout View Model
  81. var AppViewModel = function () {
  82. var self = this;
  83. //Push original objects to history arrays
  84. self.user = ko.observable(new User());
  85. self.save = function () {
  86. console.log(ko.toJSON(self));
  87. };
  88.  
  89. self.addEducationHistory = function () {
  90. self.user().educationHistory.push(new EducationInfo());
  91. };
  92.  
  93. self.addWorkHistory = function () {
  94. self.user().workHistory.push(new WorkInfo());
  95. };
  96.  
  97. self.checkDate = function (date) {
  98. var reg =
  99. /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/g;
  100. if (reg.test(date)) {
  101. return true;
  102. } else {
  103. return false;
  104. }
  105. }
  106.  
  107. self.checkStep1 = function () {
  108. if (self.user().consentRegistration() !== true || self.user().tradeInterest() == 'Select a trade') {
  109. alert('Error');
  110. return false;
  111. } else {
  112. alert('Success!');
  113. self.user().displayStep1(false);
  114. self.user().displayStep2(true);
  115. }
  116. }
  117.  
  118. self.checkStep2 = function () {
  119. if (self.user().approvedImmigrate() !== 'true' || self.user().immigrateOntario() !== 'true' || self.user().livingOutsideCanada() !== 'true' || String(self.user().originCountry()) === 'Other') {
  120. alert('Error');
  121. return false;
  122. } else {
  123. alert('Success!');
  124. self.user().displayStep2(false);
  125. self.user().displayStep3(true);
  126. }
  127. }
  128.  
  129. self.checkStep3 = function () {
  130. if (self.user().tradesKnowledge() == undefined || self.user().referal() == 'Select an answer') {
  131. alert("Error")
  132. return false;
  133. } else {
  134. alert('Success!');
  135. self.user().displayStep3(false);
  136. self.user().displayStep4(true);
  137. }
  138. }
  139.  
  140. self.checkStep4 = function () {
  141. if (self.user().username() == undefined || self.user().password() == undefined || self.user().firstName() == undefined || self.user().lastName() == undefined || self.user().uciNumber() == undefined || self.user().gender() == undefined || self.user().email() == undefined || self.user().preferredLanguage() == undefined || self.user().immigrationStatus() == undefined || self.user().consentResearch() == undefined) {
  142. alert("Error")
  143. return false;
  144. } else if (self.checkDate(self.user().birthday()) == false) {
  145. alert("Error")
  146. return false;
  147. } else {
  148. alert('Success!');
  149. self.user().displayStep4(false);
  150. self.user().displayStep5(true);
  151. }
  152. }
  153.  
  154. self.checkStep5 = function () {
  155. //RegEx for Start/Finished dates in the Education section (must fit MM/DD/YYYY format)
  156. var allEducationDates = document.querySelectorAll('.educationDates1');
  157. $.each(allEducationDates, function (index, value) {
  158. var currentVal = $(this).val();
  159. if (self.checkDate(currentVal)) {
  160. alert('Success!');
  161. self.user().displayStep5(false);
  162. self.user().displayStep6(true);
  163.  
  164. } else {
  165. alert('Error');
  166. return false;
  167. }
  168. });
  169. }
  170.  
  171. self.checkStep6 = function () {
  172.  
  173. }
  174.  
  175. self.addEducationHistory();
  176. self.addWorkHistory();
  177.  
  178. };
  179. ko.applyBindings(new AppViewModel());
  180.  
  181. //Check all education level inputs
  182. //If it's value is not 'Select an education level' make start/end dates required
Add Comment
Please, Sign In to add comment