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
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 DOMName: navigation-find-a-store — GET /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: CatalogSearchForm — GET 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&storeId=10851&catalogId=11651'); clearSearchField();" onblur="fillSearchField();"
onkeyup="doAutoSuggest(event, "AutoSuggestView?coreName=MC_11101_CatalogEntry_en_US&serverURL=http%3a%2f%2flbsolrronaprodlive.luxgroup.net%3a3737%2fsolr%2fMC_11101_CatalogEntry_en_US", 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 && 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 && !insuranceLoginForm.firstname.$valid && insuranceLoginForm.firstname.$touched, bold: important, 'valid': !firstname_resetenabled && 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 && step2.firstname.$dirty && 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 && step2.firstname.$dirty && step2.firstname.$invalid && step2.firstname.$viewValue != null && step2.firstname.$error.pattern" aria-label="Please enter letters only"
tabindex="0"> Please enter letters only </span>
<span ng-show="!insuranceLoginForm.firstname.$valid && 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 && !insuranceLoginForm.lastname.$valid && insuranceLoginForm.lastname.$touched, bold: important, 'valid': !lastname_resetenabled && 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 && 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 && !insuranceLoginForm.dob.$valid && insuranceLoginForm.dob.$touched, bold: important, 'valid': !dob_resetenabled && 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 && 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()"> < </button> <button type="button" class="next disabled"
ng-class="{'disabled': nextMonthIsInvalid()}" ng-disabled="nextMonthIsInvalid()" ng-click="goToNextMonth()" disabled="disabled"> > </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 && !insuranceLoginForm.zipcode.$valid && insuranceLoginForm.zipcode.$touched, bold: important, 'valid': !zipcode_resetenabled && 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 && 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&storeId=10851&category=InsuranceClaimsSystem"> Luxottica Retail HIPPA & 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 && 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