index.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>jQuery accordion form with validation</title>
  6. <script src="../../lib/jquery.js"></script>
  7. <script src="../../dist/jquery.validate.js"></script>
  8. <script src="../marketo/jquery.maskedinput.js"></script>
  9. <script src="https://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
  10. <script>
  11. $(document).ready(function() {
  12. $("#recordClientPhone").mask("(999) 999-9999");
  13. $("#recordClientPhoneAlt").mask("(999) 999-9999");
  14. $("#recordClientZip").mask("99999");
  15. $("#recordPropertyZip").mask("99999");
  16. $("#recordPurchaseZip").mask("99999");
  17. // add * to required field labels
  18. $('label.required').append('&nbsp;<strong>*</strong>&nbsp;');
  19. // accordion functions
  20. var accordion = $("#stepForm").accordion();
  21. var current = 0;
  22. $.validator.addMethod("pageRequired", function(value, element) {
  23. var $element = $(element)
  24. function match(index) {
  25. return current == index && $(element).parents("#sf" + (index + 1)).length;
  26. }
  27. if (match(0) || match(1) || match(2)) {
  28. return !this.optional(element);
  29. }
  30. return "dependency-mismatch";
  31. }, $.validator.messages.required)
  32. var v = $("#cmaForm").validate({
  33. errorClass: "warning",
  34. onkeyup: false,
  35. onfocusout: false,
  36. submitHandler: function() {
  37. alert("Submitted, thanks!");
  38. }
  39. });
  40. // back buttons do not need to run validation
  41. $("#sf2 .prevbutton").click(function() {
  42. accordion.accordion("option", "active", 0);
  43. current = 0;
  44. });
  45. $("#sf3 .prevbutton").click(function() {
  46. accordion.accordion("option", "active", 1);
  47. current = 1;
  48. });
  49. // these buttons all run the validation, overridden by specific targets above
  50. $(".open2").click(function() {
  51. if (v.form()) {
  52. accordion.accordion("option", "active", 2);
  53. current = 2;
  54. }
  55. });
  56. $(".open1").click(function() {
  57. if (v.form()) {
  58. accordion.accordion("option", "active", 1);
  59. current = 1;
  60. }
  61. });
  62. $(".open0").click(function() {
  63. if (v.form()) {
  64. accordion.accordion("option", "active", 0);
  65. current = 0;
  66. }
  67. });
  68. });
  69. </script>
  70. <link rel="stylesheet" media="screen" href="style.css">
  71. </head>
  72. <body>
  73. <div id="wrap">
  74. <div id="main">
  75. <h1 class="top bottom">
  76. <span>Help me</span>Buy and Sell a House</h1>
  77. <h2>This form is quick &amp; easy to complete - in only 3 steps!</h2>
  78. <form name="cmaForm" id="cmaForm" method="post">
  79. <input type="hidden" name="recordRequestPrimaryServiceID" id="recordRequestPrimaryServiceID" value="100">
  80. <input type="hidden" name="recordClientServices" id="recordClientServices" value="1,3">
  81. <ul id="stepForm" class="ui-accordion-container">
  82. <li id="sf1">
  83. <a href='#' class="ui-accordion-link"></a>
  84. <div>
  85. <fieldset>
  86. <legend>Step 1 of 3</legend>
  87. <div class="requiredNotice">*Required Field</div>
  88. <h3 class="stepHeader">Tell us about the property you're buying</h3>
  89. <label for="recordPurchaseMetRealtor" class="input required">Are you currently working with a
  90. <br>real estate agent?</label>&nbsp;&nbsp;No:
  91. <input name="recordPurchaseMetRealtor" type="radio" checked="checked" class="inputclass" value="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes:
  92. <input name="recordPurchaseMetRealtor" type="radio" class="inputclass pageRequired" value="1" title="Please choose Yes or No">
  93. <div class="formspacer"></div>
  94. <label for="recordPurchaseTimeFrameID" class="input required">When would you like to move?</label>
  95. <select name="recordPurchaseTimeFrameID" id="recordPurchaseTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
  96. <option value="">-Select-</option>
  97. <option value="1">Less than 3 months</option>
  98. <option value="2">3-6 months</option>
  99. <option value="3">6-9 months</option>
  100. <option value="4">9-12 months</option>
  101. <option value="5">Over 12 months</option>
  102. </select>
  103. <br>
  104. <label for="recordPurchasePriceRangeID" class="input required">Purchase price range:</label>
  105. <select name="recordPurchasePriceRangeID" id="recordPurchasePriceRangeID" class="inputclass pageRequired" title="Select a Price Range">
  106. <option value="">-Select-</option>
  107. <option value="1"></option>
  108. <option value="2">$75,000 - $100,000</option>
  109. <option value="3">$100,000 - $125,000</option>
  110. <option value="4">$125,000 - $150,000</option>
  111. <option value="5">$150,000 - $200,000</option>
  112. <option value="6">$200,000 - $250,000</option>
  113. <option value="7">$250,000 - $300,000</option>
  114. <option value="8">$300,000 - $350,000</option>
  115. <option value="9">$350,000 - $400,000</option>
  116. <option value="10">$400,000 - $500,000</option>
  117. <option value="11">$500,000 - $700,000</option>
  118. <option value="12">$700,000 - $900,000</option>
  119. <option value="13">> $900,000</option>
  120. </select>
  121. <br>
  122. <label for="recordPurchaseState" class="input required">State:</label>
  123. <select name="recordPurchaseState" id="recordPurchaseState" class="inputclass pageRequired" title="Select a State">
  124. <option value="">-Select-</option>
  125. <option value="AL">Alabama</option>
  126. <option value="AK">Alaska</option>
  127. <option value="AZ">Arizona</option>
  128. <option value="AR">Arkansas</option>
  129. <option value="CA">California</option>
  130. <option value="CO">Colorado</option>
  131. <option value="CT">Connecticut</option>
  132. <option value="DE">Delaware</option>
  133. <option value="DC">Dist of Columbia</option>
  134. <option value="FL">Florida</option>
  135. <option value="GA">Georgia</option>
  136. <option value="HI">Hawaii</option>
  137. <option value="ID">Idaho</option>
  138. <option value="IL">Illinois</option>
  139. <option value="IN">Indiana</option>
  140. <option value="IA">Iowa</option>
  141. <option value="KS">Kansas</option>
  142. <option value="KY">Kentucky</option>
  143. <option value="LA">Louisiana</option>
  144. <option value="ME">Maine</option>
  145. <option value="MD">Maryland</option>
  146. <option value="MA">Massachusetts</option>
  147. <option value="MI">Michigan</option>
  148. <option value="MN">Minnesota</option>
  149. <option value="MS">Mississippi</option>
  150. <option value="MO">Missouri</option>
  151. <option value="MT">Montana</option>
  152. <option value="NE">Nebraska</option>
  153. <option value="NV">Nevada</option>
  154. <option value="NH">New Hampshire</option>
  155. <option value="NJ">New Jersey</option>
  156. <option value="NM">New Mexico</option>
  157. <option value="NY">New York</option>
  158. <option value="NC">North Carolina</option>
  159. <option value="ND">North Dakota</option>
  160. <option value="OH">Ohio</option>
  161. <option value="OK">Oklahoma</option>
  162. <option value="OR">Oregon</option>
  163. <option value="PA" selected="selected">Pennsylvania</option>
  164. <option value="RI">Rhode Island</option>
  165. <option value="SC">South Carolina</option>
  166. <option value="SD">South Dakota</option>
  167. <option value="TN">Tennessee</option>
  168. <option value="TX">Texas</option>
  169. <option value="UT">Utah</option>
  170. <option value="VT">Vermont</option>
  171. <option value="VA">Virginia</option>
  172. <option value="WA">Washington</option>
  173. <option value="WV">West Virginia</option>
  174. <option value="WI">Wisconsin</option>
  175. <option value="WY">Wyoming</option>
  176. </select>
  177. <br>
  178. <label for="recordPurchasePropertyTypeID" class="input">Desired property type:</label>
  179. <select name="recordPurchasePropertyTypeID" id="recordPurchasePropertyTypeID" class="inputclass" title="Select a Property Type">
  180. <option value="">-Select-</option>
  181. <option value="1">Single Family Detached</option>
  182. <option value="2">Condo</option>
  183. <option value="3">Townhouse</option>
  184. <option value="4">Rental</option>
  185. <option value="5">Multi-Family</option>
  186. <option value="6">Vacation Home</option>
  187. <option value="7">Other</option>
  188. </select>
  189. <br>
  190. <div class="buttonWrapper">
  191. <input name="formNext1" type="button" class="open1 nextbutton" value="Next" alt="Next" title="Next">
  192. </div>
  193. </fieldset>
  194. </div>
  195. </li>
  196. <li id="sf2">
  197. <a href='#' class="ui-accordion-link">
  198. </a>
  199. <div>
  200. <fieldset>
  201. <legend>Step 2 of 3</legend>
  202. <div class="requiredNotice">*Required Field</div>
  203. <h3 class="stepHeader">Tell us about the property you're selling</h3>
  204. <label for="recordClientTimeFrameID" class="input required">When would you like to sell?</label>
  205. <select name="recordClientTimeFrameID" id="recordClientTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
  206. <option value="">-Select-</option>
  207. <option value="1">Less than 3 months</option>
  208. <option value="2">3-6 months</option>
  209. <option value="3">6-9 months</option>
  210. <option value="4">9-12 months</option>
  211. <option value="5">Over 12 months</option>
  212. </select>
  213. <br>
  214. <label for="recordClientHomeTypeID" class="input required">Type of property you are selling:</label>
  215. <select name="recordClientHomeTypeID" id="recordClientHomeTypeID" class="inputclass pageRequired" title="Select a Property Type">
  216. <option value="">-Select-</option>
  217. <option value="1">Single Family Detached</option>
  218. <option value="2">Condo</option>
  219. <option value="3">Townhouse</option>
  220. <option value="4">Rental</option>
  221. <option value="5">Multi-Family</option>
  222. <option value="6">Vacation Home</option>
  223. <option value="7">Other</option>
  224. </select>
  225. <br>
  226. <label for="recordPropertyAddress1" class="input required">Property Street Address:</label>
  227. <input name="recordPropertyAddress1" id="recordPropertyAddress1" class="inputclass pageRequired" title="Street Address is required" maxlength="254" onblur="recordClientAddress1.value = this.value">
  228. <br>
  229. <label for="recordPropertyAddress2" class="input">Address (2):</label>
  230. <input name="recordPropertyAddress2" id="recordPropertyAddress2" class="inputclass" maxlength="254" onblur="recordClientAddress2.value = this.value">
  231. <br>
  232. <label for="recordPropertyCity" class="input required">City:</label>
  233. <input name="recordPropertyCity" id="recordPropertyCity" class="inputclass pageRequired" title="City is required" maxlength="254" onblur="recordClientCity.value = this.value">
  234. <br>
  235. <label for="recordPropertyState" class="input required">State:</label>
  236. <select name="recordPropertyState" id="recordPropertyState" class="inputclass pageRequired" title="Select a State" onchange="recordClientState.value = this.value">
  237. <option value="">-Select-</option>
  238. <option value="AL">Alabama</option>
  239. <option value="AK">Alaska</option>
  240. <option value="AZ">Arizona</option>
  241. <option value="AR">Arkansas</option>
  242. <option value="CA">California</option>
  243. <option value="CO">Colorado</option>
  244. <option value="CT">Connecticut</option>
  245. <option value="DE">Delaware</option>
  246. <option value="DC">Dist of Columbia</option>
  247. <option value="FL">Florida</option>
  248. <option value="GA">Georgia</option>
  249. <option value="HI">Hawaii</option>
  250. <option value="ID">Idaho</option>
  251. <option value="IL">Illinois</option>
  252. <option value="IN">Indiana</option>
  253. <option value="IA">Iowa</option>
  254. <option value="KS">Kansas</option>
  255. <option value="KY">Kentucky</option>
  256. <option value="LA">Louisiana</option>
  257. <option value="ME">Maine</option>
  258. <option value="MD">Maryland</option>
  259. <option value="MA">Massachusetts</option>
  260. <option value="MI">Michigan</option>
  261. <option value="MN">Minnesota</option>
  262. <option value="MS">Mississippi</option>
  263. <option value="MO">Missouri</option>
  264. <option value="MT">Montana</option>
  265. <option value="NE">Nebraska</option>
  266. <option value="NV">Nevada</option>
  267. <option value="NH">New Hampshire</option>
  268. <option value="NJ">New Jersey</option>
  269. <option value="NM">New Mexico</option>
  270. <option value="NY">New York</option>
  271. <option value="NC">North Carolina</option>
  272. <option value="ND">North Dakota</option>
  273. <option value="OH">Ohio</option>
  274. <option value="OK">Oklahoma</option>
  275. <option value="OR">Oregon</option>
  276. <option value="PA" selected="selected">Pennsylvania</option>
  277. <option value="RI">Rhode Island</option>
  278. <option value="SC">South Carolina</option>
  279. <option value="SD">South Dakota</option>
  280. <option value="TN">Tennessee</option>
  281. <option value="TX">Texas</option>
  282. <option value="UT">Utah</option>
  283. <option value="VT">Vermont</option>
  284. <option value="VA">Virginia</option>
  285. <option value="WA">Washington</option>
  286. <option value="WV">West Virginia</option>
  287. <option value="WI">Wisconsin</option>
  288. <option value="WY">Wyoming</option>
  289. </select>
  290. <br>
  291. <label for="recordPropertyZip" class="input required">Zip:</label>
  292. <input name="recordPropertyZip" id="recordPropertyZip" class="inputclass pageRequired" title="Zip Code is required" maxlength="254" onblur="recordClientZip.value = this.value">
  293. <br>
  294. <label for="recordClientPropertyValueID" class="input required">Estimated Market Value:</label>
  295. <select name="recordClientPropertyValueID" id="recordClientPropertyValueID" class="inputclass pageRequired" title="Select a Price Range">
  296. <option value="">-Select-</option>
  297. <option value="1">Less Than $75K</option>
  298. <option value="2">$75-$100K</option>
  299. <option value="3">$100-$125K</option>
  300. <option value="4">$125-$150K</option>
  301. <option value="5">$150-$200K</option>
  302. <option value="6">$200-$250K</option>
  303. <option value="7">$250-$300K</option>
  304. <option value="8">$300-$350K</option>
  305. <option value="9">$350-$400K</option>
  306. <option value="10">$400-$500K</option>
  307. <option value="11">$500-$700K</option>
  308. <option value="12">$700-$900K</option>
  309. <option value="13">Over $900K</option>
  310. </select>
  311. <br>
  312. <label for="recordPropertyBedroomsID" class="input">Bedrooms:</label>
  313. <select name="recordPropertyBedroomsID" id="recordPropertyBedroomsID" class="inputclass">
  314. <option value="">-Select-</option>
  315. <option value="1">1</option>
  316. <option value="2">2</option>
  317. <option value="3">3</option>
  318. <option value="4">4</option>
  319. <option value="5">5+</option>
  320. </select>
  321. <br>
  322. <label for="recordPropertyBathroomsId" class="input">Bathrooms:</label>
  323. <select name="recordPropertyBathroomsId" id="recordPropertyBathroomsId" class="inputclass">
  324. <option value="">-Select-</option>
  325. <option value="1">1</option>
  326. <option value="2">1.5</option>
  327. <option value="3">2</option>
  328. <option value="4">2.5</option>
  329. <option value="5">3</option>
  330. <option value="6">3.5</option>
  331. <option value="7">4+</option>
  332. </select>
  333. <br>
  334. <label for="recordPropertyAgeId" class="input">Approx. Age of Home:</label>
  335. <select name="recordPropertyAgeId" id="recordPropertyAgeId" class="inputclass">
  336. <option value="">-Select-</option>
  337. <option value="1">Less Than 1 year</option>
  338. <option value="2">1-5 years</option>
  339. <option value="3">6-10 years</option>
  340. <option value="4">11-15 years</option>
  341. <option value="5">More than 15 years</option>
  342. </select>
  343. <br>
  344. <label for="recordPropertySqFt" class="input">Approx. Square Footage:</label>
  345. <input name="recordPropertySqFt" id="recordPropertySqFt" class="inputclass" maxlength="254">
  346. <br>
  347. <div class="buttonWrapper">
  348. <input name="formBack0" type="button" class="open0 prevbutton" value="Back" alt="Back" title="Back">
  349. <input name="formNext2" type="button" class="open2 nextbutton" value="Next" alt="Next" title="Next">
  350. </div>
  351. </fieldset>
  352. </div>
  353. </li>
  354. <li id="sf3">
  355. <a href='#' class="ui-accordion-link">
  356. </a>
  357. <div>
  358. <fieldset>
  359. <legend>Step 3 of 3</legend>
  360. <div class="requiredNotice">*Required Field</div>
  361. <h3 class="stepHeader">Tell us about yourself</h3>
  362. <label for="recordClientNameFirst" class="input required">First Name:</label>
  363. <input name="recordClientNameFirst" id="recordClientNameFirst" class="inputclass pageRequired" title="First Name is required" maxlength="254">
  364. <br>
  365. <label for="recordClientNameLast" class="input required">Last Name:</label>
  366. <input name="recordClientNameLast" id="recordClientNameLast" class="inputclass pageRequired" maxlength="254" title="Last Name is required">
  367. <br>
  368. <label for="recordClientAddress1" class="input required">Current Address:</label>
  369. <input name="recordClientAddress1" id="recordClientAddress1" class="inputclass pageRequired" maxlength="254" title="Address is required">
  370. <br>
  371. <label for="recordClientAddress2" class="input">Address (2):</label>
  372. <input name="recordClientAddress2" id="recordClientAddress2" class="inputclass" maxlength="254">
  373. <br>
  374. <label for="recordClientCity" class="input required">City:</label>
  375. <input name="recordClientCity" id="recordClientCity" class="inputclass pageRequired" maxlength="254" title="City is required">
  376. <br>
  377. <label for="recordClientState" class="input required">State:</label>
  378. <select name="recordClientState" id="recordClientState" class="inputclass pageRequired" title="Select a State">
  379. <option value="">-Select-</option>
  380. <option value="AL">Alabama</option>
  381. <option value="AK">Alaska</option>
  382. <option value="AZ">Arizona</option>
  383. <option value="AR">Arkansas</option>
  384. <option value="CA">California</option>
  385. <option value="CO">Colorado</option>
  386. <option value="CT">Connecticut</option>
  387. <option value="DE">Delaware</option>
  388. <option value="DC">Dist of Columbia</option>
  389. <option value="FL">Florida</option>
  390. <option value="GA">Georgia</option>
  391. <option value="HI">Hawaii</option>
  392. <option value="ID">Idaho</option>
  393. <option value="IL">Illinois</option>
  394. <option value="IN">Indiana</option>
  395. <option value="IA">Iowa</option>
  396. <option value="KS">Kansas</option>
  397. <option value="KY">Kentucky</option>
  398. <option value="LA">Louisiana</option>
  399. <option value="ME">Maine</option>
  400. <option value="MD">Maryland</option>
  401. <option value="MA">Massachusetts</option>
  402. <option value="MI">Michigan</option>
  403. <option value="MN">Minnesota</option>
  404. <option value="MS">Mississippi</option>
  405. <option value="MO">Missouri</option>
  406. <option value="MT">Montana</option>
  407. <option value="NE">Nebraska</option>
  408. <option value="NV">Nevada</option>
  409. <option value="NH">New Hampshire</option>
  410. <option value="NJ">New Jersey</option>
  411. <option value="NM">New Mexico</option>
  412. <option value="NY">New York</option>
  413. <option value="NC">North Carolina</option>
  414. <option value="ND">North Dakota</option>
  415. <option value="OH">Ohio</option>
  416. <option value="OK">Oklahoma</option>
  417. <option value="OR">Oregon</option>
  418. <option value="PA" selected="selected">Pennsylvania</option>
  419. <option value="RI">Rhode Island</option>
  420. <option value="SC">South Carolina</option>
  421. <option value="SD">South Dakota</option>
  422. <option value="TN">Tennessee</option>
  423. <option value="TX">Texas</option>
  424. <option value="UT">Utah</option>
  425. <option value="VT">Vermont</option>
  426. <option value="VA">Virginia</option>
  427. <option value="WA">Washington</option>
  428. <option value="WV">West Virginia</option>
  429. <option value="WI">Wisconsin</option>
  430. <option value="WY">Wyoming</option>
  431. </select>
  432. <br>
  433. <label for="recordClientZip" class="input required">Zip:</label>
  434. <input name="recordClientZip" id="recordClientZip" class="inputclass pageRequired" maxlength="12" title="Zip Code is required">
  435. <br>
  436. <label for="recordClientPhone" class="input required">Phone Number:</label>
  437. <input name="recordClientPhone" id="recordClientPhone" class="inputclass pageRequired" maxlength="254" title="Phone Number is required">
  438. <br>
  439. <label for="recordClientPhoneAlt" class="input">Alternate Number:</label>
  440. <input name="recordClientPhoneAlt" id="recordClientPhoneAlt" class="inputclass" maxlength="254">
  441. <br>
  442. <label for="recordClientEmail" class="input required">Email Address:</label>
  443. <input name="recordClientEmail" id="recordClientEmail" class="inputclass pageRequired email" maxlength="254" title="Email address is required">
  444. <br>
  445. <label for="recordClientEmail1" class="input required">Confirm Email:</label>
  446. <input name="recordClientEmail1" id="recordClientEmail1" class="inputclass pageRequired" equalTo: "'#recordClientEmail" maxlength="254" title="Please confirm your email address">
  447. <br>
  448. <br>
  449. <p class="formDisclaimer">This is a sample form, no information is sent anywhere.</p>
  450. <div class="buttonWrapper">
  451. <input name="formBack1" type="button" class="open1 prevbutton" value="Back" alt="Back" title="Back">
  452. <input name="submit" type="submit" id="submit" value="Submit" class="submitbutton" alt="Submit" title="Submit">
  453. </div>
  454. </fieldset>
  455. </div>
  456. </li>
  457. </ul>
  458. </form>
  459. </div>
  460. </div>
  461. </body>
  462. </html>