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/account?cid=CM-ENL_20211127-LC-CW21-BLACKFRIDAYDAYRECALLUSSUBLEASED_10280365
Submission: On November 29 via api from SE — Scanned from DE

Form analysis 8 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: userRegFormLanding

<form id="userRegFormLanding" name="userRegFormLanding" 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="errorViewName" value="UserRegistrationAddAjaxView" autocomplete="off">
  <input name="URL" type="hidden" value="https://www.lenscrafters.com/myAccount?myAcctMain=1&amp;catalogId=11651&amp;langId=-1&amp;registration=true&amp;storeId=10851" id="CreateAccountURL" autocomplete="off">
  <input type="hidden" name="URL_AccountPersonalization" value="https://www.lenscrafters.com/AccountPersonalizationView?catalogId=11651&amp;langId=-1&amp;storeId=10851" id="URL_AccountPersonalization" autocomplete="off">
  <input type="hidden" name="challengeQuestion" value="-" autocomplete="off">
  <input type="hidden" name="challengeAnswer" value="-" autocomplete="off">
  <input type="hidden" name="account" value="" autocomplete="off">
  <input type="hidden" name="accountType" value="1" autocomplete="off">
  <input type="hidden" name="myPerkName" value="" autocomplete="off">
  <input type="hidden" name="fromPage" value="RegistrationLanding" autocomplete="off">
  <div class="fe leftAlign">
    <label for="logonId_landing">Email address <span class="required-star">**</span></label>
    <input type="text" maxlength="64" name="logonId" class="logonId_landing utagpiimask blur" id="logonId_landing" value="" placeholder="Enter your e-mail address">
  </div>
  <div class="fe leftAlign">
    <label for="logonIdVerify">Confirm email address <span class="required-star">**</span></label>
    <input type="text" class="utagpiimask blur" maxlength="64" aria-label="Logon ID Verify Account" id="logonIdVerify" "="" name=" logonIdVerify" value="" placeholder="Re-enter your email address">
  </div>
  <div class="fe leftAlign passworddiv">
    <label for="logonPassword_landing">Password <span class="required-star">**</span> </label>
    <input type="password" autocomplete="off" maxlength="32" name="logonPassword" class="logonPassword_landing passwordField  blur" id="logonPassword_landing" value="" placeholder="Enter your password">
  </div>
  <div class="fe leftAlign confirmpass">
    <label for="logonPasswordVerify_regModal">Confirm password <span class="required-star">**</span></label>
    <input type="password" autocomplete="off" id="logonPasswordVerify_regModal" aria-label="Temporary logon Password Verify Registration Modal" class="passwordField blur" maxlength="32" name="logonPasswordVerify" value=""
      placeholder="Re-enter your password">
  </div>
  <span class="passwordRequirements">Must be at least 6 characters and include one letter and one digit</span>
  <div class="fe checkbox">
    <input type="checkbox" name="optin_18yrs" role="group" aria-label="18 older" id="optin_18yrs" class="optin_18yrs_checkBox blur">
    <label class="label-gray" for="optin_18yrs" tabindex="0">I certify that I am 18 years or older. <span class="required-star">**</span></label>
  </div>
  <div class="fe">
    <input type="checkbox" name="purchase_sync" role="group" aria-label="Purchase Sync" id="purchase_sync_landing" class="PurchaseSyncCheck blur" checked="">
    <label class="label-gray" for="purchase_sync_landing" tabindex="0">Yes, I have visited a store or office before. Link my information.</label>
  </div>
  <div class="fe">
    <input type="checkbox" name="receiveEmail" role="group" aria-label="receive email" id="receiveEmail" class="receiveEmail_checkBox landingAlignText blur" checked="">
    <label class="label-gray" for="receiveEmail" tabindex="0">Yes! Sign me up to receive emails &amp; offers.</label>
  </div>
  <div class="fe buttons">
    <div class="new-button blue inline orange">
      <input type="button" value="create account" class="submit regSubmit">
    </div>
  </div>
</form>

Name: LogonForm

<form name="LogonForm" id="LogonForm" class="LogonForm ng-pristine ng-valid" novalidate="novalidate">
  <input name="storeId" value="10851" type="hidden" autocomplete="off">
  <input name="catalogId" value="11651" type="hidden" autocomplete="off">
  <input name="langId" value="-1" type="hidden" autocomplete="off">
  <input name="errorViewName" type="hidden" value="LogonAjaxView" autocomplete="off">
  <input name="reLogonURL" type="hidden" value="LogonAjaxView" autocomplete="off">
  <input name="myPerksRedirectURL" type="hidden" value="https://www.lenscrafters.com/myPerksView?catalogId=11651&amp;langId=-1&amp;storeId=10851" autocomplete="off">
  <input name="URL" type="hidden" value="https://www.lenscrafters.com/myAccount?myAcctMain=1&amp;catalogId=11651&amp;langId=-1&amp;registration=true&amp;storeId=10851" autocomplete="off">
  <input type="hidden" name="myPerkName" value="" autocomplete="off">
  <input type="hidden" name="fromPage" value="RegistrationLanding" autocomplete="off">
  <div class="fe">
    <label for="emailAddress">Email Address<span class="required-star">**</span></label>
    <input id="emailAddress" class="utagpiimask blur" name="logonId" type="text" maxlength="64" placeholder="Enter your e-mail address">
  </div>
  <div class="fe">
    <label for="logonPasswordLanding">Password <span class="required-star">**</span></label>
    <input name="logonPassword" id="logonPasswordLanding" class="passwordField blur" type="password" autocomplete="off" maxlength="32" placeholder="Enter your password">
    <a href="#" id="forgotPassword">Forgot your password?</a>
  </div>
  <div class="fe buttons US">
    <input type="button" id="logonSubmit" value="sign in" class="logonSubmit submit new-style-button">
  </div>
</form>

Name: ResetPasswordForm

<form name="ResetPasswordForm" class="ResetPasswordForm ng-pristine ng-valid" novalidate="novalidate">
  <input type="hidden" name="challengeAnswer" value="-" class="WC_PasswordResetForm_FormInput_challengeAnswer_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="storeId" value="10851" class="WC_PasswordResetForm_FormInput_storeId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="catalogId" value="11651" class="WC_PasswordResetForm_FormInput_catalogId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="langId" value="-1" class="WC_PasswordResetForm_FormInput_langId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="state" value="passwdconfirm" class="WC_PasswordResetForm_FormInput_state_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="URL" value="ResetPasswordAjaxView" class="WC_PasswordResetForm_FormInput_URL_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="errorViewName" value="ResetPasswordAjaxView" class="WC_PasswordResetForm_FormInput_errorViewName_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="currentID" value="" class="currentID" autocomplete="off">
  <div class="logon-email-container">
    <input size="25" type="text" id="logonId" name="logonId" class="WC_PasswordResetForm_FormInput_logonId_In_ResetPasswordForm_1" placeholder="E-mail address" tabindex="1" maxlength="64">
    <svg style="display:none;" class="icon-error-field">
      <use xlink:href="#error-field"></use>
    </svg>
    <span class="empty-email-message hide">The email address field cannot be empty.</span>
    <span class="invalid-email-message hide">Please provide a valid email address.</span>
  </div>
  <div class="ResetPasswordSuccessFullResponseMessageDiv">
  </div>
  <div class="ResetPasswordFailureResponseMessageDiv">
  </div>
  <div class="ResetPasswordErrorMsg" style="display:none"> We do not have a record of a registered customer with that email address. Enter another email address and try again. </div>
  <input type="button" class="button-medium-blue-fill passwordResetSubmitButton submit" value="Submit" tabindex="2">
</form>

Name: passwordResetResendButton

<form name="passwordResetResendButton" class="passwordResetResendButton ng-pristine ng-valid">
  <input type="hidden" name="challengeAnswer" value="-" class="WC_PasswordResetForm_FormInput_challengeAnswer_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="storeId" value="10851" class="WC_PasswordResetForm_FormInput_storeId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="catalogId" value="11651" class="WC_PasswordResetForm_FormInput_catalogId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="langId" value="-1" class="WC_PasswordResetForm_FormInput_langId_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="state" value="passwdconfirm" class="WC_PasswordResetForm_FormInput_state_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="URL" value="ResetPasswordAjaxView" class="WC_PasswordResetForm_FormInput_URL_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="errorViewName" value="ResetPasswordAjaxView" class="WC_PasswordResetForm_FormInput_errorViewName_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="currentID" value="" class="currentID" autocomplete="off">
  <input type="hidden" name="logonId" value="" autocomplete="off">
  <svg style="display:none;" class="icon-error-field">
    <use xlink:href="#error-field"></use>
  </svg>
  <input type="button" class="passwordResetResendButton" value="Resend e-mail" tabindex="2">
</form>

Name: ResetPasswordUpdateSubmitFormPOST ResetPassword

<form name="ResetPasswordUpdateSubmitForm" method="post" class="ResetPasswordUpdateSubmitForm ng-pristine ng-valid" action="ResetPassword" novalidate="novalidate">
  <input type="hidden" name="storeId" value="10851" class="WC_PasswordUpdateForm_FormInput_storeId_In_Logon_1" autocomplete="off">
  <input type="hidden" name="catalogId" value="11651" class="WC_PasswordUpdateForm_FormInput_catalogId_In_Logon_1" autocomplete="off">
  <input type="hidden" name="langId" value="-1" class="WC_PasswordUpdateForm_FormInput_langId_In_Logon_1" autocomplete="off">
  <input type="hidden" name="URL" value="https://www.lenscrafters.com/myAccount?myAcctMain=1&amp;catalogId=11651&amp;langId=-1&amp;storeId=10851" class="WC_PasswordUpdateForm_FormInput_URL_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="errorViewName" value="ResetPasswordAjaxView" class="WC_PasswordUpdateForm_FormInput_errorViewName_In_ResetPasswordForm_1" autocomplete="off">
  <input type="hidden" name="formName" value="ResetPasswordUpdateSubmitForm" autocomplete="off">
  <input type="hidden" name="isResetPasswordRequest" value="true" autocomplete="off">
  <input type="hidden" name="challengeQuestion" value="-" autocomplete="off">
  <input type="hidden" name="challengeAnswer" value="-" autocomplete="off">
  <input type="hidden" name="autoPopulatedEmailHiddenDesktop" class="autoPopulatedEmailHiddenDesktop" autocomplete="off">
  <div class="fe-row" id="passwordUpdateEmailInputContainer">
    <div class="fe">
      <input id="passwordUpdateEmailInput" size="25" type="text" autocomplete="off" placeholder="E-mail" maxlength="32" aria-label="E-mail" name="logonId" value="" class="WC_PasswordUpdateForm_FormInput_email_In_Logon_1 resetHighlight">
    </div>
  </div>
  <div class="fe-row">
    <div class="fe">
      <input size="25" type="password" autocomplete="off" placeholder="Temporary password" maxlength="32" aria-label="Logon Password Old" name="logonPasswordOld" value="" class="WC_PasswordUpdateForm_FormInput_logonPasswordOld_In_Logon_1">
    </div>
  </div>
  <div class="fe-row">
    <div class="fe">
      <input id="new-password" size="25" type="password" autocomplete="off" placeholder="New password" maxlength="32" name="logonPassword" value="" aria-label="logonPassword_updateModel" class="logonPassword_updateModel">
      <svg onclick="showPassword('new-password')" class="icon">
        <use xlink:href="#eye-icon"></use>
      </svg>
      <div class="passwordRequirements"> The password must contain at least: <div class="passwordRequirementsDetails">
          <span class="passwordRequirementsDetail minlength">
            <svg class="icon">
              <use xlink:href="#pass-placeholder"></use>
            </svg> 6 characters </span>
          <span class="passwordRequirementsDetail atLeastOneLetter">
            <svg class="icon">
              <use xlink:href="#pass-placeholder"></use>
            </svg> 1 letter </span>
          <span class="passwordRequirementsDetail atLeastOneDigit">
            <svg class="icon">
              <use xlink:href="#pass-placeholder"></use>
            </svg> 1 digit </span>
        </div>
      </div>
    </div>
  </div>
  <div class="fe-row">
    <div class="fe">
      <input id="confirm-new-password" size="25" type="password" autocomplete="off" placeholder="Confirm new password" maxlength="32" aria-label="Logon password Verify" name="logonPasswordVerify" value=""
        class="WC_PasswordUpdateForm_FormInput_logonPasswordVerify_In_Logon_1">
      <svg onclick="showPassword('confirm-new-password')" class="icon">
        <use xlink:href="#eye-icon"></use>
      </svg>
    </div>
  </div>
  <div class="fe submit">
    <input type="submit" class="reset-your-password button-medium-blue-fill submit" value="Reset your password">
  </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 blur" 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 blur" 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 blur" 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 blur" 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 blur">
        <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

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 : 16 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





CREATE AN ACCOUNT

**required
Email address **
Confirm email address **
Password **
Confirm password **
Must be at least 6 characters and include one letter and one digit
I certify that I am 18 years or older. **
Yes, I have visited a store or office before. Link my information.
Yes! Sign me up to receive emails & offers.



SIGN IN

Email Address**
Password ** Forgot your password?

or fast login
Facebook
Google


FORGOT YOUR PASSWORD?

Enter the email address you used for your account and we'll send you a temporary
password along with instructions.

The email address field cannot be empty. Please provide a valid email address.


We do not have a record of a registered customer with that email address. Enter
another email address and try again.



A TEMPORARY PASSWORD HAS BEEN SENT TO:

{0} Once you've copied it, click the button below or follow the link in the
email. If you don't receive it, check your spam folder or Contact Us for further
assistance.

Reset your Password






RESET YOUR PASSWORD

Please enter the temporary password we sent you and select a new one.


The password must contain at least:
6 characters 1 letter 1 digit


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: 579883976
 * 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.


Loading




WE'RE VERIFYING YOUR PERK

While you're waiting, please don't refresh the screen



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
Chat