www.lenscrafters.com Open in urlscan Pro
2a02:26f0:6c00::210:bad0  Public Scan

Submitted URL: https://e.lenscrafters.com/pub/cc?_ri_=X0Gzc2X%3DAQpglLjHJlYQGg7vzbizcflRCkCnCr2a4h4UFTWXFuANavhAXJ8cnzce9ndzgU73Gmzdt0RVXt...
Effective URL: https://www.lenscrafters.com/lc-us/oakley/888392574657?cid=CM-ENL_20211127-LC-CW21-BLACKFRIDAYDAYRECALLUSSUBLEASED_10280365
Submission: On November 29 via api from SE — Scanned from DE

Form analysis 3 forms found in the DOM

Name: navigation-find-a-storeGET /lc-us/eye-exam

<form id="storeSearchFormHeader" action="/lc-us/eye-exam" name="navigation-find-a-store" method="get" class="ng-pristine ng-valid" novalidate="novalidate">
  <input type="hidden" name="storeId" value="10851" autocomplete="off">
  <input type="hidden" name="catalogId" value="11651" autocomplete="off">
  <input type="hidden" name="langId" value="-1" autocomplete="off">
  <input type="hidden" name="fromHeader" value="true" autocomplete="off">
  <input type="hidden" class="latLong" name="latLong" value="" autocomplete="off">
  <input type="hidden" name="page" value="0" autocomplete="off">
  <input type="hidden" name="apptId" value="" autocomplete="off">
  <input type="hidden" name="reschedule" value="" autocomplete="off">
  <input type="hidden" id="StoreLocator_ProductId_Header" name="productId" value="" autocomplete="off">
  <input type="text" autocomplete="off" class="store-input blur" aria-label="Location entry" name="locationEntry" value="" maxlength="64" placeholder="Enter City / State or Zip Code">
  <button class="store-search-submit submit-find-store button-medium-blue-fill" href="javascript:void(0);" onclick="javascript:utag.link({link_name:'In-Store Lookup',product_id:['']});" type="submit" data-element-id="X_X_MainNav_EYE-ZipCode"> SEARCH
  </button>
</form>

Name: CatalogSearchFormGET https://www.lenscrafters.com/SearchDisplay

<form name="CatalogSearchForm" action="https://www.lenscrafters.com/SearchDisplay" method="get" id="CatalogSearchForm" ng-show="searchOpen == true" class="ng-pristine ng-valid ng-hide">
  <input type="hidden" name="storeId" value="10851" id="WC_CachedHeaderDisplay_FormInput_storeId_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="catalogId" value="11651" id="WC_CachedHeaderDisplay_FormInput_catalogId_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="langId" value="-1" id="WC_CachedHeaderDisplay_FormInput_langId_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="pageSize" value="24" id="WC_CachedHeaderDisplay_FormInput_pageSize_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="beginIndex" value="0" id="WC_CachedHeaderDisplay_FormInput_beginIndex_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="searchSource" value="Q" id="WC_CachedHeaderDisplay_FormInput_searchSource_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="sType" value="SimpleSearch" id="WC_CachedHeaderDisplay_FormInput_sType_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="resultCatEntryType" value="2" id="WC_CachedHeaderDisplay_FormInput_resultType_In_CatalogSearchForm_1" autocomplete="off">
  <input type="hidden" name="showResultsPage" value="true" id="WC_CachedHeaderDisplay_input_1" autocomplete="off"> <input type="hidden" name="pageView" value="" id="WC_CachedHeaderDisplay_input_2" autocomplete="off"> <input type="hidden"
    name="showCarousel" value="true" id="showCarousel" autocomplete="off">
  <input type="hidden" name="selectedTab" value="" autocomplete="off">
  <div id="header-search" ng-class="searchInputHasGainFocus == true ? 'd-flex' : ''">
    <span id="searchTextHolder" class="nodisplay">Search for...</span>
    <span class="spanacce"> ???SEARCH_ACCESSKEY??? </span>
    <meta name="CommerceSearch" content="storeId_10851">
    <a id="close-mobile-search" class="hide show-xs-only show-sm-only ng-hide" ng-show="searchInputHasGainFocus" ng-click="searchInputHasGainFocus = false; emptySearchField = true; resetSearchField();" title="close search"></a>
    <label for="SimpleSearchForm_SearchTerm" class="nodisplayClass"> ???SEARCH_CATALOG??? </label>
    <input type="text" maxlength="64" accesskey="0" size="18" class="search-txt blur" ng-class="{mobile:mobileMenuStatus}" name="searchTerm" id="SimpleSearchForm_SearchTerm" value="Search for..."
      onfocus="JavaScript:retrieveCachedSuggestions('CachedSuggestionsView?langId=-1&amp;storeId=10851&amp;catalogId=11651'); clearSearchField();" onblur="fillSearchField();"
      onkeyup="doAutoSuggest(event, &quot;AutoSuggestView?coreName=MC_11101_CatalogEntry_en_US&amp;serverURL=http%3a%2f%2flbsolrronaprodlive.luxgroup.net%3a3737%2fsolr%2fMC_11101_CatalogEntry_en_US&quot;, this.value);"
      onkeypress="onKeyPressFunctions(event);" ng-init="resetSearchField();" ng-keyup="showCloseIcon($event);" ng-keypress="emptySearchField = false"
      ng-focus="searchInputHasGainFocus = true; searchOpen = true; emptySearchField = (deviceType == 'D' ? false : true);" autocomplete="off" tabindex="-1">
    <script type="text/javascript">
      // The primary Array to hold all static search suggestions
      var staticContent = new Array();
      // The titles of each search grouping
      var staticContentHeaders = new Array();
      var staticContentHeaderHistory = "???SEARCH_HISTORY???"
      // The auto suggest container ID's
      var staticContentSectionDiv = ["autoSuggestStatic_1", "autoSuggestStatic_2", "autoSuggestStatic_3"];
    </script>
    <div dojotype="wc.widget.RefreshArea" widgetid="AutoSuggestCachedSuggestions" controllerid="AutoSuggestCachedSuggestionsController" id="autoSuggestCachedSuggestions_div" role="region" aria-label="Auto Suggest Suggestions" waistate:live="polite"
      waistate:atomic="true" waistate:relevant="all" style="display: none;"></div>
    <button class="WC_CachedHeaderDisplay_button_1" type="submit" href="#" title="Click here to perform a search."
      onclick="JavaScript:document.CatalogSearchForm.searchTerm.value=trim(document.CatalogSearchForm.searchTerm.value); if(document.CatalogSearchForm.searchTerm.value); if(document.CatalogSearchForm.searchTerm.value.length > 0 &amp;&amp; document.CatalogSearchForm.searchTerm.value != 'Search LensCrafters.com') {submitSpecifiedForm(document.CatalogSearchForm);} return false;">
      ???SEARCH_CATALOG??? </button>
    <div id="autoCompleteContainer"></div>
  </div>
</form>

Name: insuranceLoginForm

<form name="insuranceLoginForm" class="css-form ng-pristine ng-invalid ng-invalid-required ng-valid-pattern ng-valid-minlength ng-valid-maxlength" novalidate="">
  <span class="ng-binding"> </span>
  <div class="login-data">
    <div class="firstname-input"
      ng-class="{'invalid': !firstname_resetenabled &amp;&amp; !insuranceLoginForm.firstname.$valid &amp;&amp; insuranceLoginForm.firstname.$touched, bold: important, 'valid': !firstname_resetenabled &amp;&amp; insuranceLoginForm.firstname.$valid}">
      <section class="insurance-input-container">
        <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern" reset-field="" placeholder=" " id="firstname" type="text" ng-model="loginData.firstname" name="firstname"
          ng-pattern="/^([a-zA-Z]{2,})(\s[a-zA-Z]{2,})*$/" ng-required="personalFormRequired()" aria-label="First name"
          required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
        <label>First Name<span class="required-field">*</span></label>
      </section>
      <span class="insurance-input-validation required-firstname live-validation ng-hide" ng-show="!firstname_resetenabled &amp;&amp; step2.firstname.$dirty &amp;&amp; step2.firstname.$viewValue == null"
        aria-label="The first name field cannot be empty." tabindex="0"> The first name field cannot be empty. </span>
      <span class="insurance-input-validation letters-only-firstname live-validation ng-hide"
        ng-show="!firstname_resetenabled &amp;&amp; step2.firstname.$dirty &amp;&amp; step2.firstname.$invalid &amp;&amp; step2.firstname.$viewValue != null &amp;&amp; step2.firstname.$error.pattern" aria-label="Please enter letters only"
        tabindex="0"> Please enter letters only </span>
      <span ng-show="!insuranceLoginForm.firstname.$valid &amp;&amp; insuranceLoginForm.firstname.$touched" tabindex="-1" aria-label="Please enter a valid first name" class="insurance-input-validation ng-hide">Please enter a valid first name.</span>
    </div>
    <div class="lastname-input"
      ng-class="{'invalid': !lastname_resetenabled &amp;&amp; !insuranceLoginForm.lastname.$valid &amp;&amp; insuranceLoginForm.lastname.$touched, bold: important, 'valid': !lastname_resetenabled &amp;&amp; insuranceLoginForm.lastname.$valid}">
      <section class="insurance-input-container">
        <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern" id="lastname" reset-field="" placeholder=" " type="text" ng-model="loginData.lastname" name="lastname"
          ng-pattern="/^([a-zA-Z]{2,})(\s[a-zA-Z]{2,})*$/" ng-required="personalFormRequired()" aria-label="Last name"
          required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
        <label>Last Name<span class="required-field">*</span></label>
      </section>
      <span ng-show="!insuranceLoginForm.lastname.$valid &amp;&amp; insuranceLoginForm.lastname.$touched" tabindex="-1" aria-label="Please enter a valid last name" class="insurance-input-validation ng-hide">Please enter a valid last name.</span>
    </div>
    <div class="dob-zip-container">
      <div class="dob-input" ng-class="{'invalid': !dob_resetenabled &amp;&amp; !insuranceLoginForm.dob.$valid &amp;&amp; insuranceLoginForm.dob.$touched, bold: important, 'valid': !dob_resetenabled &amp;&amp; insuranceLoginForm.dob.$valid }">
        <lc-datepicker format="MM/dd/yyyy" show-calendar="dobDatePickerToggle" selector="#date-of-birth2" start-date="dateSet" max-date="maxDate" class="ng-isolate-scope">
          <div ng-transclude="">
            <input id="date-of-birth2" inputmode="numeric" class="lc-input lc-input-text utagpiimask ng-pristine ng-untouched ng-scope ng-empty ng-invalid ng-invalid-required ng-valid-minlength ng-valid-maxlength" name="dob" ng-minlength="10"
              ng-maxlength="10" ng-model="loginData.dob" placeholder="Date of birth" angular-mask="00/00/0000" ng-required="personalFormRequired()" dob-validation="" required="required">
            <label class="lc-input-label ng-scope" for="dob">Date of birth<span class="required-field">*</span></label>
            <a class="calendar-btn ng-scope" ng-click="dobDatePickerToggleFn()">
											<svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">
												<path d="M16.9231 3H3.07692C1.92987 3 1 4.00736 1 5.25V18.75C1 19.9926 1.92987 21 3.07692 21H16.9231C18.0701 21 19 19.9926 19 18.75V5.25C19 4.00736 18.0701 3 16.9231 3Z" stroke="#222222" stroke-width="1.5" stroke-linejoin="round"></path>
												<path d="M10.5 10.125C10.5 10.3321 10.3321 10.5 10.125 10.5C9.91789 10.5 9.75 10.3321 9.75 10.125C9.75 9.91789 9.91789 9.75 10.125 9.75C10.3321 9.75 10.5 9.91789 10.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M15.5 10.125C15.5 10.3321 15.3321 10.5 15.125 10.5C14.9179 10.5 14.75 10.3321 14.75 10.125C14.75 9.91789 14.9179 9.75 15.125 9.75C15.3321 9.75 15.5 9.91789 15.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M10.5 13.625C10.5 13.8321 10.3321 14 10.125 14C9.91789 14 9.75 13.8321 9.75 13.625C9.75 13.4179 9.91789 13.25 10.125 13.25C10.3321 13.25 10.5 13.4179 10.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M15.5 13.625C15.5 13.8321 15.3321 14 15.125 14C14.9179 14 14.75 13.8321 14.75 13.625C14.75 13.4179 14.9179 13.25 15.125 13.25C15.3321 13.25 15.5 13.4179 15.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M5.5 13.625C5.5 13.8321 5.33211 14 5.125 14C4.91789 14 4.75 13.8321 4.75 13.625C4.75 13.4179 4.91789 13.25 5.125 13.25C5.33211 13.25 5.5 13.4179 5.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M5.5 17.125C5.5 17.3321 5.33211 17.5 5.125 17.5C4.91789 17.5 4.75 17.3321 4.75 17.125C4.75 16.9179 4.91789 16.75 5.125 16.75C5.33211 16.75 5.5 16.9179 5.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M10.5 17.125C10.5 17.3321 10.3321 17.5 10.125 17.5C9.91789 17.5 9.75 17.3321 9.75 17.125C9.75 16.9179 9.91789 16.75 10.125 16.75C10.3321 16.75 10.5 16.9179 10.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M15.5 17.125C15.5 17.3321 15.3321 17.5 15.125 17.5C14.9179 17.5 14.75 17.3321 14.75 17.125C14.75 16.9179 14.9179 16.75 15.125 16.75C15.3321 16.75 15.5 16.9179 15.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M5.5 10.125C5.5 10.3321 5.33211 10.5 5.125 10.5C4.91789 10.5 4.75 10.3321 4.75 10.125C4.75 9.91789 4.91789 9.75 5.125 9.75C5.33211 9.75 5.5 9.91789 5.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
												<path d="M6 1.25V2.75" stroke="#222222" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
												<path d="M14 1V2.5" stroke="#222222" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
												<path d="M19 6L1 6" stroke="#222222" stroke-width="1.5" stroke-linejoin="round"></path>
											</svg>
										</a>
            <span ng-show="!insuranceLoginForm.dob.$valid &amp;&amp; insuranceLoginForm.dob.$touched" tabindex="-1" aria-label="Please enter a valid date of birth" class="insurance-input-validation ng-scope ng-hide">Please enter a valid date of
              birth.</span>
          </div><button type="button" ng-show="showToggle" class="calendar-toggle ng-hide" ng-click="toggleCalendar()">Toggle calendar</button>
          <div class="underlay ng-hide" ng-show="showCalendar" ng-click="toggleCalendar()"></div>
          <div class="lc-datepicker ng-hide" ng-show="showCalendar" ng-switch="" on="currentPage"> <!-- ngSwitchWhen: yearPage --> <!-- ngSwitchWhen: monthPage --> <!-- ngSwitchWhen: datePage -->
            <div class="date-page ng-scope" ng-switch-when="datePage">
              <div class="header"> <span class="header-control ng-binding" ng-click="goToMonthPage()">November</span> <span class="header-control ng-binding" ng-click="goToYearPage()">2021</span>
                <div class="buttons"> <button type="button" class="prev" ng-class="{'disabled': prevMonthIsInvalid()}" ng-disabled="prevMonthIsInvalid()" ng-click="goToPrevMonth()"> &lt; </button> <button type="button" class="next disabled"
                    ng-class="{'disabled': nextMonthIsInvalid()}" ng-disabled="nextMonthIsInvalid()" ng-click="goToNextMonth()" disabled="disabled"> &gt; </button> </div>
              </div>
              <div class="weekdays"> <!-- ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Sun</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
                  ng-repeat="day in week">Mon</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Tue</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
                  ng-repeat="day in week">Wed</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Thu</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
                  ng-repeat="day in week">Fri</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Sat</span><!-- end ngRepeat: day in week --> </div>
              <div class="dates-list"> <!-- ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in pastMonth" ng-click="selectDate(date)"> 31 </span><!-- end ngRepeat: date in pastMonth --> <!-- ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 1 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 2
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 3 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 4 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 5 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 6
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 7 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 8 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 9 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 10
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 11 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 12 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 13 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 14
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 15 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 16 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 17 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 18
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 19 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 20 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 21 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 22
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 23 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 24 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 25 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 26
                </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
                  ng-click="selectDate(date)"> 27 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
                  ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 28 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 29 </span><!-- end ngRepeat: date in currentMonth --><span
                  class="date currentMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 30
                </span><!-- end ngRepeat: date in currentMonth --> <!-- ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 1 </span><!-- end ngRepeat: date in nextMonth --><span
                  class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 2
                </span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth"
                  ng-click="selectDate(date)"> 3 </span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
                  ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 4 </span><!-- end ngRepeat: date in nextMonth --> </div>
            </div><!-- end ngSwitchWhen: -->
          </div>
        </lc-datepicker>
      </div>
      <div class="zipcode-input"
        ng-class="{'invalid': !zipcode_resetenabled &amp;&amp; !insuranceLoginForm.zipcode.$valid &amp;&amp; insuranceLoginForm.zipcode.$touched, bold: important, 'valid': !zipcode_resetenabled &amp;&amp; insuranceLoginForm.zipcode.$valid}">
        <section class="insurance-input-container">
          <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern" reset-field="" placeholder=" " type="text" inputmode="numeric" ng-model="loginData.zipcode" name="zipcode"
            ng-pattern="/^[0-9]{5}(?:-[0-9]{4})?$/" ng-required="personalFormRequired()" aria-label="Zipcode"
            required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
          <label>Zip Code<span class="required-field">*</span></label>
        </section>
        <span ng-show="!insuranceLoginForm.zipcode.$valid &amp;&amp; insuranceLoginForm.zipcode.$touched" tabindex="-1" aria-label="Please enter a valid zip code" class="insurance-input-validation ng-hide">Please enter a valid zip code.</span>
      </div>
    </div>
  </div>
  <div class="submit-plan-info">
    <div class="age-check">
      <label class="lc-control lc-control--checkbox" for="certifyage">I certify that my use of this service abides by the
        <a class="hippa-privacypolicies" href="/webapp/wcs/stores/servlet/LegalView?catalogId=11651&amp;storeId=10851&amp;category=InsuranceClaimsSystem"> Luxottica Retail HIPPA &amp; Privacy Policies</a>
        <input type="checkbox" ng-model="loginData.certifyage" name="certifyage" id="certifyage" data-element-id="D_X_MainNav_VisionInsurance-18YearsOld" required="" aria-label="18 years vision insurance checkbox"
          class="ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required">
        <div class="lc-control__indicator"></div>
      </label>
      <span class="age-check-error ng-hide" ng-show="!insuranceLoginForm.certifyage.$valid &amp;&amp; insuranceLoginForm.certifyage.$touched"
        aria-label="To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this step.">To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this
        step.</span>
    </div>
    <button class="submit-plan-info-button" name="submitplaninfobutton" ng-click="submitInsuranceLogin(insuranceLoginForm)" data-element-id="X_X_MainNav_VisionInsurance-CheckEligibility">Apply insurance</button>
  </div>
</form>

Text Content

Oakley CENTERBOARD Eyeglasses | LensCrafters
Skip to main content

YOUR RESULTS ARE
SECONDS AWAY!

STAY WITH US WHILE WE HAND SELECT ITEMS TO CREATE
YOUR PERFECT LOOK.

Connect to Facebook Disconnect from Facebook |
Skip main navigation
Find a Store
Previous
Our precautions in store. Learn more
Free shipping and free returns.
Our new store in San Francisco is now open!
Get blue light filtering lenses. Shop Now
Book an eye exam online. Schedule now
Buy online, pick up in store. Shop Now
Our precautions in store. Learn more
Free shipping and free returns.
Our new store in San Francisco is now open!
Get blue light filtering lenses. Shop Now
Book an eye exam online. Schedule now
Buy online, pick up in store. Shop Now
Our precautions in store. Learn more
Next
Insurance accepted online and in store
0

   EYEGLASSES
 * Eyeglasses
   
   
   SHOP BY gender
   Women’s Eyeglasses
   
   Men’s Eyeglasses
   
   Kids’ Eyeglasses
   
   view all eyeglasses
   SHOP BY OFFER
   Cyber Monday Last Day Designer Sale | 50% off frame + lenses
   SHOP BY our picks
   Best sellers Ray-Ban Oakley New arrivals
   shop by our holiday picks
   For Her For Him
   SHOP BY LENSES
   Blue light Transitions light-responsive
   view all eyeglasses
   
   
   - ONLINE AND IN STORE -
   
   Cyber Monday
   
   One Day Only
   
   30% off frames
   + 50% off lenses
   
   SHOP EYEGLASSES

   SUNGLASSES
 * Sunglasses
   
   
   SHOP BY gender
   Women’s Sunglasses
   
   Men’s Sunglasses
   
   Kids’ Sunglasses
   
   view all sunglasses
   SHOP BY OFFER
   Cyber Monday Last Day Designer Sale | 50% off frame + lenses
   SHOP BY our picks
   Best sellers Ray-Ban Oakley New arrivals
   shop by our holiday picks
   For Her For Him
   SHOP BY LENSES
   Polarized Oakley Prizm
   view all sunglasses
   
   
   - ONLINE AND IN STORE -
   
   Cyber Monday
   
   One Day Only
   
   30% off frames
   + 50% off lenses
   
   Shop sunglasses

   CONTACT LENSES
 * Contact lenses
   
   
   Need a contact lenses refill?
   LOGIN TO REORDER
   Complete your first contact lens purchase and you can reorder next time with
   just one click.
   
   Your last purchase
   
   
   
   Previous Next
    / 
   REORDER NOW
   Acuvue contacts
   Dailies contacts
   Air Optix contacts
   Biofinity contacts
   LensCrafters contacts
   Ray-Ban contacts
   Biotrue contacts
   Precision 1 contacts
   Ultra contacts
   
   view all contact lenses
   OUR PICKS View all
   ACUVUE OASYS® 1-Day with HydraLuxe™ Technology, 90 pack
   1-DAY ACUVUE® MOIST, 90 pack
   ACUVUE OASYS® with HYDRACLEAR® PLUS Technology, 24 pack
   ACUVUE OASYS® for ASTIGMATISM, 6 pack
   ACUVUE OASYS® 1-Day for ASTIGMATISM, 30 pack
   1-DAY ACUVUE® MOIST FOR ASTIGMATISM - 90 PACK
   ACUVUE OASYS® with HYDRACLEAR® PLUS Technology, 12 pack
   1-DAY ACUVUE® MOIST, 30 pack
   ACUVUE© VITA 12 PACK
   ACUVUE® VITA, 6 pack
   Shop contact lenses
   Need a contact lenses refill?
   LOGIN TO REORDER
   Complete your first contact lens purchase and you can reorder next time with
   just one click.
   
   Loading your previous order...
   
   
   Your last purchase
   here's your last purchase
   
   Previous Next REORDER NOW
    / 

   LENSES
 * 

   BRANDS
 * Brands
   
   
   View all brands
   Armani Exchange Arnette Brooks Brothers Bulgari Burberry Chaps Coach Costa
   Del Mar Dolce&Gabbana Ess Emporio Armani Gucci Giorgio Armani LensCrafters
   Michael Kors Oakley Oakley Youth Persol Polo Prep Polo Ralph Lauren Prada
   Prada Linea Rossa Ralph by Ralph Lauren Ralph Lauren Ray-Ban Ray-Ban Jr
   Sferoflex Starck Eyes Tiffany Tom Ford Tory Burch Valentino Versace Vogue
   Eyewear Vogue Jr
   View all brands
   
   
   Add a touch of feminine allure with Prada Eyewear
   
   Shop prada

   EYE EXAM
 * Eye exam
   
   
   Schedule an eye exam
   
   for you and your family
   
   Find the LensCrafters store closest to you
   SEARCH
   Protecting your eyes and the community
   We’ve created a customer and patient experience that prioritizes hygiene and
   safety without sacrificing our quality of care.
   Hands and respiratory hygiene
   Surface and products hygiene
   Social distancing
   discover more
   
   HERE’S SOME LIGHT READING
   Vision guide Importance of eye exams Our doctors Clarifye Tips From Our
   Experts
   
   
   Tips From Our Experts
   
   In this episode, Your Digital Eye Exam
   
   WATCH THE VIDEO

Search for... ???SEARCH_ACCESSKEY??? ???SEARCH_CATALOG???

???SEARCH_CATALOG???


CYBER MONDAY EYEWEAR DEALS

CYBER MONDAY CONTACT LENS DEALS

RAY-BAN VERSACE OAKLEY BURBERRY EYEGLASSES CONTACT LENSES SUNGLASSES

0
Favorites

My account My account Logout
My Account
Logout

Vision insurance Find a store
0
Favorites
0
Cart

18 h : 01 m : 55 s

 Cyber Monday
ending soon Shop now Other offers
× Exclusive savings for you
- ONLINE & IN STORE | APPLIES DIRECTLY IN CART - Cyber Monday One Day Only
30% off frames + 50% off lenses Shop Eyewear
- ONLINE & IN STORE | APPLIES DIRECTLY IN CART - Cyber Monday One Day Only
Up to $200 off an annual supply
of contact lenses Shop Contact Lenses
- In store only - 50% off additional pairs Find a store
- ONLINE & IN STORE | APPLIES DIRECTLY IN CART - Designer Sale | 50% off frame +
lenses Shop Designer Sale
VIEW ALL OFFERS



Close




What kind of appointment would you like to book?
Eye exam with a doctor For eyeglasses, prescription sunglasses or contact
lenses.
Store service appointments Get your glasses cleaned and/or adjusted.* Or find a
new frame style with help from an associate *Available for all glasses, no
matter where you purchased them.
What kind of appointment would you like to book?
Eye exam with a doctor For eyeglasses, prescription sunglasses or contact
lenses.
Store service appointments Get your glasses cleaned and/or adjusted.* Or find a
new frame style with help from an associate *Available for all glasses, no
matter where you purchased them.
 * Home
 * Brands
 * Oakley
 * CENTERBOARD



New 30% Off



OAKLEY


CENTERBOARD

Quantity


New 30% Off


Previous

Next
 * 1
 * 2
 * 3
 * 4
 * 5

Grey Shadow
Black
Transparent
Frame  

OAKLEY


CENTERBOARD



Quantity



 * Standard
 * Large
 * Standard
 * Size guide

 * OAKLEY
   CENTERBOARD

 * 
   
   
 * Use insurance
   Add prescription lenses to see your benefits applied
   ???INSURANCE_ITEM_LIMIT???
   Insurance cannot be used without selecting prescription lenses
   
 * Frame $106.40 $152.00
   
   
   
 * Lenses edit $0.00 $0.00
 * Perk applied $0.00
   3 interest-free payments or as low as $36/mo with Affirm. Learn more
   
   SELECT LENSES
 * Find and try on in store

 * Sorry!This item is currently sold out,
   but will be back in stock soon.
   
   Sorry!This item is sold out
   and no longer in production.
   
   

 * Savings $45.60
   
   Insurance Saving $0.00
   
   Subtotal $106.40 $152.00
   
   Don't need prescription lenses?
   
   Add to bag Add to bag
 * Find and try on in store
 * 


ABOUT THIS PRODUCT

Frame Material:

Propionate

Frame shape:

Round

Frame color:

Grey Shadow

The Oakley pursuit of performance innovation is unrivaled. Its eyewear pushes
the limit to create stylish gear that performs with purpose.




SIZE GUIDE


FRAME SIZE:


STANDARD (55/17/141/40) (55/17/141/40)

Frame size is usually defined by lens width, bridge width and temple length.
These values are always displayed in that order, in millimeters.

mm



inch

Lens width ( 55 / 17 / 141 / 40 ) (2.17/0.67/5.55/1.57)



Bridge width ( 55 / 17 / 141 / 40 ) (2.17/ 0.67/ 5.55/ 1.57)




Frame width 116 4.57

As a reference, you may want to check the size of your current eyewear, by
looking at the inner side of the temple. Should you see a fourth number at the
end, this refers to lens height (i.e. 55/17/141/40). (i.e. 55/17/141/40).

0OX8163 55 17 141 40 55 17 141 40



Temple width ( 55 / 17 / 141 / 40 ) ( 2.17 / 0.67 / 5.55 / 1.57 )


PREMIUM QUALITY LENSES

Game-changing performance for sports and the active lifestyle.



Advanced protection RX lenses for athletes and sports enthusiasts.





A seamless experience

Your vision is our priority, so we've created a complete website-to-store
experience, from ordering online for in-store pick-up to free cleaning, fitting
and adjusting. And if you need a prescription, you can easily book an eye exam
for you and your family members in just a few clicks.

book your eye exam


REVIEWS


★★★★★ No rating value Be the first to review this product
▼ Rating Menu Filter by Rating
Filter by Rating 1 star 2 stars 3 stars 4 stars 5 stars
Active Filters
 * 1 star ✘ Remove Filter
 * 2 stars ✘ Remove Filter
 * 3 stars ✘ Remove Filter
 * 4 stars ✘ Remove Filter
 * 5 stars ✘ Remove Filter
 * Clear All ✘ Clear All Filters




1000+ STORES

With a dedicated team of
expert doctors & associates.


COLLECT IN STORE

Your online order delivered
to your local store.


AFTERCARE

Free cleaning & adjustments
at all of our locations.


PROTECTION PLAN

Additional one-year extended
warranty.


FREE SHIPPING & RETURNS

Delivery on us and a 30-day
return period.

Choose Green Shipping as a sustainable solution to help reduce climate impact.


Check your insurance eligibility
We accept most vision insurance plans online, saving you time and money.
Discover more

No match found.

Your insurance might be out of network, check information below.


Select or type your insurance provider*
Insurance provider cannot be empty.
First Name*
The first name field cannot be empty. Please enter letters only Please enter a
valid first name.
Last Name*
Please enter a valid last name.
Date of birth* Please enter a valid date of birth.
Toggle calendar

November 2021
< >
SunMonTueWedThuFriSat
31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 1 2 3 4
Zip Code*
Please enter a valid zip code.
I certify that my use of this service abides by the Luxottica Retail HIPPA &
Privacy Policies

To proceed, tick the box above to certify you're 18 years or older. If you're
not, you cannot proceed with this step.
Apply insurance
We also accept out-of-network plans
Download Form
For your security, your personal benefits information is only available during
your session and will be erased when you close the browser.


BRANDS

BRANDS

 * Ray-Ban
 * Oakley
 * Versace
 * Coach
 * Michael Kors
 * Prada
 * View all Brands



EYECARE

EYECARE

 * Our Lenses
 * Schedule an Eye Exam
 * Vision Guide
 * Eyewear Glossary
 * Measuring your PD
 * Tips From Our Experts
 * Blue Light Glasses
 * 



SAVINGS

SAVINGS

 * Black Friday
 * Cyber Monday
 * Offers & Discount
 * Insurance
 * FSA & HSA
 * LensCrafters credit card
 * AAA Members
 * AARP Members
 * 



CUSTOMER SERVICE

CUSTOMER SERVICE

   
 * Personalized services
 * Purchase Care
 * Online Order Status
 * Shipping & Returns
 * FAQ
 * Live chat
 * Contact us



LEGAL

LEGAL

 * Privacy Policy
 * Terms & Conditions
 * Independent Doctor's Notice
 * AdChoices
 * WebId: 764387643
 * Do not sell my personal information



COMPANY INFO

COMPANY INFO

 * About us
 * Our Flagship Store
 * Careers
 * Find a Store
 * Site Map


UNITED STATES (English)
 * UNITED STATES (English)
 * UNITED STATES (Español)
 * CANADA (English)
 * CANADA (Française)


We guarantee every transaction is 100% secure
 * 
 * 
 * 
 * 
 * 
 * 
 * 

Buy now, pay later with Affirm.  Learn More




© 2021 LensCrafters All Rights Reserved

Other sites of the Group
DISCOVER OTHER BRANDS FROM LUXOTTICA
Ray-Ban Oakley Persol Oliver Peoples Vogue Eyewear Sunglass Hut Target Optical
Glasses.com Contact Direct



PAYING IN INSTALLMENTS

Want to spread out the cost of your order with LensCrafters?
Select ‘Affirm’ or ‘Afterpay’ as your payment method at checkout to pay in
interest-free installments.

With Affirm, make 3 interest-free payments every two weeks with zero hidden
fees. Payment options are offered by Affirm, are subject to an eligibility
check, and may not be available in all states. CA residents: Loans by Affirm
Loan Services, LLC are made or arranged pursuant to a California Finance Lender
license.

With Afterpay, make 4 interest-free payments, every two weeks. You must be over
18, a resident of the U.S., and meet additional eligibility criteria to qualify.
Late fees may apply. Click here for complete terms. Loans to California
residents made or arranged are pursuant to a California Finance Lenders Law
license.





 * 2021-11-29T01:57+00:00
 * bvseo_fps, prod_bvrr, vn_firebird_3.1.16
 * cp_1, bvpage1
 * loc_en_US, 888392574657, prd, sort_relevancy
 * co_noreviews, co_noquestions, tv_0, tr_0

Luxottica of America uses cookies, script code, and other similar tracking
technology to collect data and/or monitor your interactions on our sites and to
improve your experience. By clicking “Accept All Cookies,” you consent to our
use of cookies. For more information about cookies and the processing of your
personal information, please see our Privacy Policy. To manage your cookie
selections, please see our Cookie Manager.
Accept All Cookies