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

Submitted URL: https://e.lenscrafters.com/pub/cc?_ri_=X0Gzc2X%3DAQpglLjHJlYQGg7vzbizcflRCkCnCr2a4h4UFTWXFuANavhAXJ8cnzce9ndzgU73Gmzdt0RVXt...
Effective URL: https://www.lenscrafters.com/lc-us/ray-ban/8053672973334?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

Ray-Ban RB3016 51 CLUBMASTER Sunglasses | 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 : 03 m : 01 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
 * Ray-Ban
 * RB3016 51 CLUBMASTER



30% Off



RAY-BAN


RB3016 51 CLUBMASTER

Quantity


30% Off


Previous

Next
 * 1
 * 2
 * 3
 * 4
 * 5
 * 6

Previous
Spotted Brown/Blue Brown
Spotted Grey/Green Grey
Tortoise G-15 Green
Black on Gold G-15 Green
Sand Havana On Gold Blue
Red Havana Blue
Next
Frame Lenses 

RAY-BAN


RB3016 51 CLUBMASTER



Quantity



 * Standard
 * Standard
   Large
 * Standard
   Large
 * Standard
 * Standard
 * Standard
 * Size guide

 * RAY-BAN
   RB3016 51 CLUBMASTER

 * 
   
   
 * Use insurance
   Add prescription lenses to see your benefits applied
   ???INSURANCE_ITEM_LIMIT???
   Insurance cannot be used without selecting prescription lenses
   
 * Frame $123.20 $176.00
   
   
   
 * Lenses edit $0.00 $0.00
 * Perk applied $0.00
   3 interest-free payments or as low as $42/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 $52.80
   
   Insurance Saving $0.00
   
   Subtotal $123.20 $176.00
   
   Don't need prescription lenses?
   
   Add to bag Add to bag
 * Find and try on in store
 * 


ABOUT THIS PRODUCT

Frame Material:

Acetate

Frame shape:



Frame color:

Spotted Brown/Blue

Lens color:

Brown

Ray-Ban® is a timeless and elegant icon with a vintage look beloved by
intellectuals and millionaires alike.




SIZE GUIDE


FRAME SIZE:


STANDARD (51/21/145/40) (51/21/145/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 ( 51 / 21 / 145 / 40 ) (2.01/0.83/5.71/1.57)



Bridge width ( 51 / 21 / 145 / 40 ) (2.01/ 0.83/ 5.71/ 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. 51/21/145/40). (i.e. 51/21/145/40).

0RB3016 51 21 145 40 51 21 145 40



Temple width ( 51 / 21 / 145 / 40 ) ( 2.01 / 0.83 / 5.71 / 1.57 )


PREMIUM QUALITY LENSES

Specially cut and shaped to fit perfectly with your Ray-Ban frames.



Maximum glare reduction for optimal vision in bright conditions.





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

Write a review . This action will open a modal dialog.



RATING SNAPSHOT

Select a row below to filter reviews.

5★ stars

12 12 reviews with 5 stars. Select to filter reviews with 5 stars.
4★ stars

2 2 reviews with 4 stars. Select to filter reviews with 4 stars.
3★ stars

0 0 reviews with 3 stars. Select to filter reviews with 3 stars.
2★ stars

0 0 reviews with 2 stars. Select to filter reviews with 2 stars.
1★ stars

1 1 review with 1 star. Select to filter reviews with 1 star.


AVERAGE CUSTOMER RATINGS

Overall
★★★★★ ★★★★★ 4.6 Overall, average rating value is 4.6 of 5.

1–2 of 15 Reviews  
? Display a popup with information about Relevancy Sort.
Sort by: Most Relevant ▼ Menu
Most Relevant Most Helpful Highest to Lowest Rating Lowest to Highest Rating
Most Recent
▼ 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

 1. Susie36
    Susie36
    Baltimore, MD
     * Review 1
    
    …
    ★★★★★ ★★★★★ 1 out of 5 stars.
    Susie36
    · 2 years ago  
    
    
    GREAT FRAMES, POOR QUALITY LENSES
    
    I wear progressive lenses and thought I’d try lenscrafters instead of my
    regular optician. The lenses were not acceptable and keystoned my vision so
    parallel lines weren’t parallel and made reading impossible. I returned them
    and went back to my regular (and more expensive) optician.
    
     * - Cons:
     * quality
    
    
    
    
    
 2. RayBan fan
    RayBan fan
    Ohio
     * Review 1
    
    …
    ★★★★★ ★★★★★ 4 out of 5 stars.
    RayBan fan
    · 10 months ago  
    
    
    LOVE MY NEW SUNGLASSES
    
    This is my first pair of prescription sunglasses so I was a bit leery but,
    the LensCrafters associate said, "you will love them!" and she was right!
    RayBan has great/quality lenses! I tried another brand first and just could
    not see well in them so went to these and so glad I did!
    
     * + Pros:
     * quality,
     * comfort,
     * style
    
    
    
    
    

Load More



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: 666808159
 * 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:56+00:00
 * bvseo_fps, prod_bvrr, vn_firebird_3.1.16
 * cp_1, bvpage1
 * loc_en_US, 8053672973334, prd, sort_relevancy
 * co_hasreviews, co_noquestions, tv_15, tr_15


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