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
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 DOMName: navigation-find-a-store — GET /lc-us/eye-exam
<form id="storeSearchFormHeader" action="/lc-us/eye-exam" name="navigation-find-a-store" method="get" class="ng-pristine ng-valid" novalidate="novalidate">
<input type="hidden" name="storeId" value="10851" autocomplete="off">
<input type="hidden" name="catalogId" value="11651" autocomplete="off">
<input type="hidden" name="langId" value="-1" autocomplete="off">
<input type="hidden" name="fromHeader" value="true" autocomplete="off">
<input type="hidden" class="latLong" name="latLong" value="" autocomplete="off">
<input type="hidden" name="page" value="0" autocomplete="off">
<input type="hidden" name="apptId" value="" autocomplete="off">
<input type="hidden" name="reschedule" value="" autocomplete="off">
<input type="hidden" id="StoreLocator_ProductId_Header" name="productId" value="" autocomplete="off">
<input type="text" autocomplete="off" class="store-input blur" aria-label="Location entry" name="locationEntry" value="" maxlength="64" placeholder="Enter City / State or Zip Code">
<button class="store-search-submit submit-find-store button-medium-blue-fill" href="javascript:void(0);" onclick="javascript:utag.link({link_name:'In-Store Lookup',product_id:['']});" type="submit" data-element-id="X_X_MainNav_EYE-ZipCode"> SEARCH
</button>
</form>
Name: CatalogSearchForm — GET https://www.lenscrafters.com/SearchDisplay
<form name="CatalogSearchForm" action="https://www.lenscrafters.com/SearchDisplay" method="get" id="CatalogSearchForm" ng-show="searchOpen == true" class="ng-pristine ng-valid ng-hide">
<input type="hidden" name="storeId" value="10851" id="WC_CachedHeaderDisplay_FormInput_storeId_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="catalogId" value="11651" id="WC_CachedHeaderDisplay_FormInput_catalogId_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="langId" value="-1" id="WC_CachedHeaderDisplay_FormInput_langId_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="pageSize" value="24" id="WC_CachedHeaderDisplay_FormInput_pageSize_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="beginIndex" value="0" id="WC_CachedHeaderDisplay_FormInput_beginIndex_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="searchSource" value="Q" id="WC_CachedHeaderDisplay_FormInput_searchSource_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="sType" value="SimpleSearch" id="WC_CachedHeaderDisplay_FormInput_sType_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="resultCatEntryType" value="2" id="WC_CachedHeaderDisplay_FormInput_resultType_In_CatalogSearchForm_1" autocomplete="off">
<input type="hidden" name="showResultsPage" value="true" id="WC_CachedHeaderDisplay_input_1" autocomplete="off"> <input type="hidden" name="pageView" value="" id="WC_CachedHeaderDisplay_input_2" autocomplete="off"> <input type="hidden"
name="showCarousel" value="true" id="showCarousel" autocomplete="off">
<input type="hidden" name="selectedTab" value="" autocomplete="off">
<div id="header-search" ng-class="searchInputHasGainFocus == true ? 'd-flex' : ''">
<span id="searchTextHolder" class="nodisplay">Search for...</span>
<span class="spanacce"> ???SEARCH_ACCESSKEY??? </span>
<meta name="CommerceSearch" content="storeId_10851">
<a id="close-mobile-search" class="hide show-xs-only show-sm-only ng-hide" ng-show="searchInputHasGainFocus" ng-click="searchInputHasGainFocus = false; emptySearchField = true; resetSearchField();" title="close search"></a>
<label for="SimpleSearchForm_SearchTerm" class="nodisplayClass"> ???SEARCH_CATALOG??? </label>
<input type="text" maxlength="64" accesskey="0" size="18" class="search-txt blur" ng-class="{mobile:mobileMenuStatus}" name="searchTerm" id="SimpleSearchForm_SearchTerm" value="Search for..."
onfocus="JavaScript:retrieveCachedSuggestions('CachedSuggestionsView?langId=-1&storeId=10851&catalogId=11651'); clearSearchField();" onblur="fillSearchField();"
onkeyup="doAutoSuggest(event, "AutoSuggestView?coreName=MC_11101_CatalogEntry_en_US&serverURL=http%3a%2f%2flbsolrronaprodlive.luxgroup.net%3a3737%2fsolr%2fMC_11101_CatalogEntry_en_US", this.value);"
onkeypress="onKeyPressFunctions(event);" ng-init="resetSearchField();" ng-keyup="showCloseIcon($event);" ng-keypress="emptySearchField = false"
ng-focus="searchInputHasGainFocus = true; searchOpen = true; emptySearchField = (deviceType == 'D' ? false : true);" autocomplete="off" tabindex="-1">
<script type="text/javascript">
// The primary Array to hold all static search suggestions
var staticContent = new Array();
// The titles of each search grouping
var staticContentHeaders = new Array();
var staticContentHeaderHistory = "???SEARCH_HISTORY???"
// The auto suggest container ID's
var staticContentSectionDiv = ["autoSuggestStatic_1", "autoSuggestStatic_2", "autoSuggestStatic_3"];
</script>
<div dojotype="wc.widget.RefreshArea" widgetid="AutoSuggestCachedSuggestions" controllerid="AutoSuggestCachedSuggestionsController" id="autoSuggestCachedSuggestions_div" role="region" aria-label="Auto Suggest Suggestions" waistate:live="polite"
waistate:atomic="true" waistate:relevant="all" style="display: none;"></div>
<button class="WC_CachedHeaderDisplay_button_1" type="submit" href="#" title="Click here to perform a search."
onclick="JavaScript:document.CatalogSearchForm.searchTerm.value=trim(document.CatalogSearchForm.searchTerm.value); if(document.CatalogSearchForm.searchTerm.value); if(document.CatalogSearchForm.searchTerm.value.length > 0 && document.CatalogSearchForm.searchTerm.value != 'Search LensCrafters.com') {submitSpecifiedForm(document.CatalogSearchForm);} return false;">
???SEARCH_CATALOG??? </button>
<div id="autoCompleteContainer"></div>
</div>
</form>
Name: 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&catalogId=11651&langId=-1&registration=true&storeId=10851" id="CreateAccountURL" autocomplete="off">
<input type="hidden" name="URL_AccountPersonalization" value="https://www.lenscrafters.com/AccountPersonalizationView?catalogId=11651&langId=-1&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 & 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&langId=-1&storeId=10851" autocomplete="off">
<input name="URL" type="hidden" value="https://www.lenscrafters.com/myAccount?myAcctMain=1&catalogId=11651&langId=-1&registration=true&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: ResetPasswordUpdateSubmitForm — POST 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&catalogId=11651&langId=-1&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 && !insuranceLoginForm.firstname.$valid && insuranceLoginForm.firstname.$touched, bold: important, 'valid': !firstname_resetenabled && insuranceLoginForm.firstname.$valid}">
<section class="insurance-input-container">
<input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern 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 && step2.firstname.$dirty && step2.firstname.$viewValue == null"
aria-label="The first name field cannot be empty." tabindex="0"> The first name field cannot be empty. </span>
<span class="insurance-input-validation letters-only-firstname live-validation ng-hide"
ng-show="!firstname_resetenabled && step2.firstname.$dirty && step2.firstname.$invalid && step2.firstname.$viewValue != null && step2.firstname.$error.pattern" aria-label="Please enter letters only"
tabindex="0"> Please enter letters only </span>
<span ng-show="!insuranceLoginForm.firstname.$valid && insuranceLoginForm.firstname.$touched" tabindex="-1" aria-label="Please enter a valid first name" class="insurance-input-validation ng-hide">Please enter a valid first name.</span>
</div>
<div class="lastname-input"
ng-class="{'invalid': !lastname_resetenabled && !insuranceLoginForm.lastname.$valid && insuranceLoginForm.lastname.$touched, bold: important, 'valid': !lastname_resetenabled && insuranceLoginForm.lastname.$valid}">
<section class="insurance-input-container">
<input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern 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 && insuranceLoginForm.lastname.$touched" tabindex="-1" aria-label="Please enter a valid last name" class="insurance-input-validation ng-hide">Please enter a valid last name.</span>
</div>
<div class="dob-zip-container">
<div class="dob-input" ng-class="{'invalid': !dob_resetenabled && !insuranceLoginForm.dob.$valid && insuranceLoginForm.dob.$touched, bold: important, 'valid': !dob_resetenabled && insuranceLoginForm.dob.$valid }">
<lc-datepicker format="MM/dd/yyyy" show-calendar="dobDatePickerToggle" selector="#date-of-birth2" start-date="dateSet" max-date="maxDate" class="ng-isolate-scope">
<div ng-transclude="">
<input id="date-of-birth2" inputmode="numeric" class="lc-input lc-input-text utagpiimask ng-pristine ng-untouched ng-scope ng-empty ng-invalid ng-invalid-required ng-valid-minlength ng-valid-maxlength 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 && insuranceLoginForm.dob.$touched" tabindex="-1" aria-label="Please enter a valid date of birth" class="insurance-input-validation ng-scope ng-hide">Please enter a valid date of
birth.</span>
</div><button type="button" ng-show="showToggle" class="calendar-toggle ng-hide" ng-click="toggleCalendar()">Toggle calendar</button>
<div class="underlay ng-hide" ng-show="showCalendar" ng-click="toggleCalendar()"></div>
<div class="lc-datepicker ng-hide" ng-show="showCalendar" ng-switch="" on="currentPage"> <!-- ngSwitchWhen: yearPage --> <!-- ngSwitchWhen: monthPage --> <!-- ngSwitchWhen: datePage -->
<div class="date-page ng-scope" ng-switch-when="datePage">
<div class="header"> <span class="header-control ng-binding" ng-click="goToMonthPage()">November</span> <span class="header-control ng-binding" ng-click="goToYearPage()">2021</span>
<div class="buttons"> <button type="button" class="prev" ng-class="{'disabled': prevMonthIsInvalid()}" ng-disabled="prevMonthIsInvalid()" ng-click="goToPrevMonth()"> < </button> <button type="button" class="next disabled"
ng-class="{'disabled': nextMonthIsInvalid()}" ng-disabled="nextMonthIsInvalid()" ng-click="goToNextMonth()" disabled="disabled"> > </button> </div>
</div>
<div class="weekdays"> <!-- ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Sun</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
ng-repeat="day in week">Mon</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Tue</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
ng-repeat="day in week">Wed</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Thu</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope"
ng-repeat="day in week">Fri</span><!-- end ngRepeat: day in week --><span class="weekday ng-binding ng-scope" ng-repeat="day in week">Sat</span><!-- end ngRepeat: day in week --> </div>
<div class="dates-list"> <!-- ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in pastMonth" ng-click="selectDate(date)"> 31 </span><!-- end ngRepeat: date in pastMonth --> <!-- ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 1 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 2
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 3 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 4 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 5 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 6
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 7 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 8 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 9 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 10
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 11 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 12 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 13 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 14
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 15 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 16 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 17 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 18
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 19 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 20 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 21 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 22
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 23 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 24 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 25 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 26
</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth"
ng-click="selectDate(date)"> 27 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}"
ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 28 </span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 29 </span><!-- end ngRepeat: date in currentMonth --><span
class="date currentMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in currentMonth" ng-click="selectDate(date)"> 30
</span><!-- end ngRepeat: date in currentMonth --> <!-- ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 1 </span><!-- end ngRepeat: date in nextMonth --><span
class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 2
</span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth"
ng-click="selectDate(date)"> 3 </span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
ng-class="{'selected': selectedDate.getTime() === date.getTime(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)"> 4 </span><!-- end ngRepeat: date in nextMonth --> </div>
</div><!-- end ngSwitchWhen: -->
</div>
</lc-datepicker>
</div>
<div class="zipcode-input"
ng-class="{'invalid': !zipcode_resetenabled && !insuranceLoginForm.zipcode.$valid && insuranceLoginForm.zipcode.$touched, bold: important, 'valid': !zipcode_resetenabled && insuranceLoginForm.zipcode.$valid}">
<section class="insurance-input-container">
<input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern 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 && insuranceLoginForm.zipcode.$touched" tabindex="-1" aria-label="Please enter a valid zip code" class="insurance-input-validation ng-hide">Please enter a valid zip code.</span>
</div>
</div>
</div>
<div class="submit-plan-info">
<div class="age-check">
<label class="lc-control lc-control--checkbox" for="certifyage">I certify that my use of this service abides by the
<a class="hippa-privacypolicies" href="/webapp/wcs/stores/servlet/LegalView?catalogId=11651&storeId=10851&category=InsuranceClaimsSystem"> Luxottica Retail HIPPA & Privacy Policies</a>
<input type="checkbox" ng-model="loginData.certifyage" name="certifyage" id="certifyage" data-element-id="D_X_MainNav_VisionInsurance-18YearsOld" required="" aria-label="18 years vision insurance checkbox"
class="ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required blur">
<div class="lc-control__indicator"></div>
</label>
<span class="age-check-error ng-hide" ng-show="!insuranceLoginForm.certifyage.$valid && insuranceLoginForm.certifyage.$touched"
aria-label="To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this step.">To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this
step.</span>
</div>
<button class="submit-plan-info-button" name="submitplaninfobutton" ng-click="submitInsuranceLogin(insuranceLoginForm)" data-element-id="X_X_MainNav_VisionInsurance-CheckEligibility">Apply insurance</button>
</div>
</form>
Text Content
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