brooch01.shopselect.net
Open in
urlscan Pro
13.230.149.252
Public Scan
URL:
https://brooch01.shopselect.net/items/62612419
Submission: On August 25 via api from US — Scanned from JP
Submission: On August 25 via api from US — Scanned from JP
Form analysis
4 forms found in the DOMGET //brooch01.shopselect.net/search
<form action="//brooch01.shopselect.net/search" method="get">
<input type="text" name="q" placeholder="商品を検索" value="">
<button type="submit">search</button>
</form>
Name: menu — POST https://brooch01.shopselect.net/cart/add/brooch01-shopselect-net
<form id="purchase_form" class="x_purchaseForm" name="menu" action="https://brooch01.shopselect.net/cart/add/brooch01-shopselect-net" method="post" data-purchase-form="" data-disabled="true">
<div id="itemSelect"> </div>
<style>
body form[id] #variationSelectWrap,
body form[id] .itemOptionElement {
max-width: 100%
}
body #purchase_form #itemSelect #valiationSelect,
body #purchase_form #itemSelect select.itemOption__select,
body form[id] #itemSelect #amountSelect,
body form[id] #itemSelect #valiationSelect,
body form[id] #itemSelect select.itemOption__select {
height: auto;
white-space: normal;
max-width: 100%;
min-height: 2.1em;
appearance: none;
-webkit-appearance: none;
padding-right: 1em;
line-height: normal;
word-break: normal;
background-repeat: no-repeat;
background-position: right .35em center;
background-size: auto;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cdefs%3E%3Cfilter id='a' x='0' y='0' width='10' height='6' filterUnits='userSpaceOnUse'%3E%3CfeFlood result='flood' flood-color='%23333' flood-opacity='.5'/%3E%3CfeComposite result='composite' operator='in' in2='SourceGraphic'/%3E%3CfeBlend result='blend' mode='multiply' in2='SourceGraphic'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M5 6l5-6H0z' fill='%23fafafa' fill-rule='evenodd' filter='url(%23a)'/%3E%3C/svg%3E")
}
</style> <input type="hidden" name="shopID" value="brooch01-shopselect-net"> <input type="hidden" name="id" value="62612419">
<script>
($ => {
if (!document.querySelector('form[data-purchase-form]')) {
$('#valiationSelect').on('change', function() {
$('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$('#amountSelectWrap .amountSelect:eq(' + $(this).find(':selected').attr('data-index') + ')').css('display', '').prop('disabled', false);
});
}
window.__initItemSelect = function() {
if (!document.querySelector('form[data-purchase-form]')) {
removeElements('#itemSelect [data-target-version="v2"]');
return;
}
const elements = document.querySelectorAll('#itemSelect');
elements.forEach(el => {
const form = el.closest('form[data-purchase-form]')
if (!form) {
removeElements('#itemSelect [data-target-version="v2"]', el);
$itemSelect = $(el);
$itemSelect.find('#valiationSelect').on('change', function() {
$itemSelect.find('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$itemSelect.find('#amountSelectWrap .amountSelect:eq(' + $(this).find(':selected').attr('data-index') + ')').css('display', '').prop('disabled', false);
});
} else {
removeElements('#itemSelect [data-target-version="v1"]', el);
$form = $(form);
changeAmountSelectAndOptions($form.find('#valiationSelect'), $form);
updatePurchaseFormDisabled($form.find('#itemSelect'), $form);
form.querySelectorAll('#valiationSelect').forEach(select => {
const $select = $(select);
if ($select.data('displayStock')) {
$select.on('change', () => {
const parentForm = $(el.closest('form[data-purchase-form]'));
changeAmountSelectAndOptions(select, parentForm);
updatePurchaseFormDisabled(parentForm.find('#itemSelect'), parentForm);
});
}
});
}
})
function removeElements(selector, parent = document) {
const target_elements = parent.querySelectorAll(selector);
target_elements.forEach(el => {
el.parentNode.removeChild(el);
})
}
}
function changeAmountSelectAndOptions(select, $form) {
$form.find('#amountSelectWrap .amountSelect').css('display', 'none').prop('disabled', true);
$selectedVariation = $(select).find(':selected');
$amountSelectWrap = $form.find('#amountSelectWrap');
$outOfStockButton = $form.find('.purchaseButton__btn--outOfStock');
$addToCartButton = $form.find('.purchaseButton__btn--addToCart');
$itemSelectOptions = $form.find('[class^="itemOption__"]');
$itemSelectOptions.css('display', 'block');
if ($(select).length == 0) {
$amountSelect = $form.find('#amountSelectWrap .amountSelect');
$amountSelect.css('display', '').prop('disabled', false);
$amountSelectWrap.show();
$addToCartButton.css('display', 'block');
$outOfStockButton.css('display', 'none');
return;
}
$amountSelect = $form.find('#amountSelectWrap .amountSelect:eq(' + $selectedVariation.attr('data-index') + ')');
if (Number($selectedVariation.data('stock')) > 0) {
$amountSelect.css('display', '').prop('disabled', false);
$amountSelectWrap.show();
$addToCartButton.css('display', 'block');
$outOfStockButton.css('display', 'none');
} else {
$amountSelectWrap.hide();
$addToCartButton.css('display', 'none');
$outOfStockButton.css('display', 'block');
}
}
/**
* 数量選択が有効でない場合に #purchase_form を送信しないようにする
* @see https://github.com/baseinc/design-engine/issues/1094
*/
function updatePurchaseFormDisabled($itemSelect, $form) {
const isAmountActive = Array.from($itemSelect.find('[name="amount"]')).some((el) => !(el.style.display === 'none' && el.disabled));
$form.attr('data-disabled', isAmountActive ? 'false' : 'true');
}
document.addEventListener('DOMContentLoaded', () => {
window.__initItemSelect && window.__initItemSelect();
window.__initItemSelect = undefined;
});
})(__BASE_JQUERY__);
</script>
<div class="communityBox">
<div class="communityOverlay" style="display:none;">
<div class="communityModal">
<p class="communityModalHeader">コミュニティ加入<i class="si-cross communityModalClose"></i></p>
<h1 class="communityTitle"></h1>
<div class="communityContent">
<div class="communityNav">
<div class="communityPrice">
<h3>月額料金</h3>
<p></p>
</div>
<div class="communityOverview"></div>
<div class="communityLinkMore"><a href="https://brooch01.shopselect.net/community">コミュニティページで詳細を見る</a></div>
<div class="communityRegister">
<div class="communityRegisterButtons"> <a class="button buttonPayid button__guest communityButton__guest"> <span class="buttonPayid__text">ゲストとして会員になる</span> </a>
<a class="button buttonPayid buttonPayid__pay button__purchase communityButton__purchase"> <img class="buttonPayid__icon" src="https://static.thebase.in/img/payment/payid/payid_logo.svg" alt="Pay IDで会員になる" width="88"> <span class="buttonPayid__text">で購入</span> </a>
</div>
<p class="communityTerms"><a href="https://thebase.com/pages/shop_community_term">利用規約</a>に同意の上、会員登録してください。</p>
<p class="communityTextNotice">※ 選択した商品を購入するには、コミュニティの会員になる必要があります。</p>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
($ => {
var formatMoney = function(value, currency, lang) {
currency = currency || 'JPY';
lang = lang || 'ja';
var formatter = Intl.NumberFormat(lang, {
style: 'currency',
currency
});
//FIXME: formatToPartsが使えると良さそうだがサポートブラウザ...
return formatter.format(value).replace('¥', '¥ ');
};
var community = {
shopInfo: null,
needsLogin: false,
setup: function(res) {
this.needsLogin = !(res.logged_in && res.community.is_member);
this.setupLoggedInButton(res);
this.setupPayidSignin(`${res.payid_login_url}/items/${this.getItemId()}`);
if (this.needsLogin) {
document.getElementById('purchase_form').dataset.communityNeedsLogin = 'true';
}
},
setupLoggedInButton: function() {
if (this.needsLogin) {
$('.communitySignin').show();
}
},
/**
* PAYIDでの購入
*/
setupPayidJoin: function(res) {
$('.communityButton__purchase').on('click', function(e) {
e.preventDefault();
$('<form>', {
action: res.payid_join_url,
method: 'post'
}).append($('<input>', {
type: 'hidden',
name: 'data[Member][community_id]',
value: res.community.id
})).append($('<input>', {
type: 'hidden',
name: 'data[Member][monthly_fee]',
value: res.community.monthly_fee
})).appendTo(document.body)
// .submit()だとsubmitイベントが発火せず、後段のイベントリスナでフックできないため、triggerでsubmitイベントを発火させる
// また、フック時の判別用にクラスを追加する
.addClass('x_communityPurchaseForm').trigger('submit');
});
},
/**
* ゲストとして会員になる
*/
setupGuestJoin: function(res) {
$('.communityButton__guest').on('click', function(e) {
e.preventDefault();
$('<form>', {
action: res.guest_join_url,
method: 'post'
}).append($('<input>', {
type: 'hidden',
name: 'data[Member][community_id]',
value: res.community.id
})).append($('<input>', {
type: 'hidden',
name: 'data[Member][monthly_fee]',
value: res.community.monthly_fee
})).appendTo(document.body)
// .submit()だとsubmitイベントが発火せず、後段のイベントリスナでフックできないため、triggerでsubmitイベントを発火させる
// また、フック時の判別用にクラスを追加する
.addClass('x_communityGuestForm').trigger('submit');
});
},
/**
* PAY IDログインボタンのリンク先を追加
* @param href string
*/
setupPayidSignin: function(href) {
$('#communityButtonPayid__signinLink').attr('href', href);
},
/**
* Shop URLを取得
*/
getShopUrl: function() {
return $('.communityData').data('shop-url');
},
getShopId: function() {
return $('.communityData').data('shop-id');
},
/**
* Item IDを取得
*/
getItemId: function() {
return $('.communityData').data('item-id');
},
/**
* Shop情報を取得
* @param shop_id string
*/
getShopInfo: function(shop_id) {
if (this.shopInfo !== null) {
return $.Deferred().resolve(this.shopInfo);
}
var shop_url = this.getShopUrl();
if (!shop_url) {
return $.Deferred().reject();
}
return $.ajax({
url: `${shop_url}/community/api/logged_in/${shop_id}`,
}).then(res => {
this.shopInfo = res
return res
});
},
/**
* コミュニティモーダル内の必要な要素を生成
*/
buildCommunityModal: function(res) {
// コミュニティ概要
var $title = $('.communityTitle');
$title.text(res['community']['name']);
var $overview = $('.communityOverview');
$overview.text(res['community']['overview']);
$('.communityContent > .communityOverview').css('white-space', 'pre-wrap');
// 月額料金
var $price = $('.communityPrice');
var $priceText = $price.find('p');
var priceRow = formatMoney(res['community']['monthly_fee']);
$priceText.text(priceRow);
// 会員になるボタン
this.setupPayidJoin(res);
this.setupGuestJoin(res);
},
}; //community
$(function() {
var showCommunityModal = function() {
$('.communityOverlay').show();
};
var closeCommunityModal = function() {
$('.communityOverlay').hide();
};
$('.communityModal').on('click', function(e) {
e.stopPropagation();
});
$('.communityOverlay, .communityModalClose').on('click', function(e) {
closeCommunityModal();
});
community.getShopInfo(community.getShopId()).done(res => {
community.setup(res);
community.buildCommunityModal(res);
}).fail(function() {
//何もしない
});
$('#purchase_form').on('submit', function(e) {
if (community.needsLogin) {
showCommunityModal();
return false;
}
});
});
})(__BASE_JQUERY__);
</script>
<style>
.communityTerms a {
display: inline;
}
</style>
<div class="purchaseButton"> <a class="purchaseButton__btn purchaseButton__btn--requestRestockMail x_restockMailNotificationModalOpen" href="javascript:void(0);">再入荷通知を希望する</a> <input type="hidden" class="x_ageVerificationGenre" value=""> <input
type="hidden" class="x_ageVerificationAge" value="">
<style>
@font-face {
font-family: shopicon;
font-style: normal;
font-weight: 400;
src: url(https://static.thebase.in/font/v1/shopicon.eot?md4x76=);
src: url(https://static.thebase.in/font/v1/shopicon.eot?md4x76=#iefix) format("embedded-opentype"), url(https://static.thebase.in/font/v1/shopicon.ttf?md4x76=) format("truetype"), url(https://static.thebase.in/font/v1/shopicon.woff?md4x76=) format("woff"), url(https://static.thebase.in/font/v1/shopicon.svg?md4x76=#shopicon) format("svg")
}
.purchaseButtonModal__wrapper {
align-items: center;
background: rgba(0, 0, 0, .3);
display: none;
justify-content: center;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 6000000
}
.purchaseButtonModal__container {
background: #fff;
border-radius: 4px;
box-shadow: 0 0 16px rgba(56, 67, 89, .3);
position: relative;
width: 560px
}
.purchaseButtonModal__result {
display: none
}
.is_success .purchaseButtonModal__submit {
display: none
}
.is_success .purchaseButtonModal__result {
display: block
}
.is_success .purchaseButtonModal__resultText {
background: #eaf8f7;
padding: 12px;
border-radius: 4px;
font-weight: 700;
color: #11beae;
font-size: 14px;
margin-bottom: 16px
}
.purchaseButtonModal__title {
border-bottom: 1px solid #f0f1f4;
color: #3d3d3d;
font-size: 20px;
font-weight: 700;
line-height: 68px;
text-align: center
}
.purchaseButtonModal__inner {
padding: 24px 32px;
text-align: left
}
.purchaseButtonModal__text {
color: #3d3d3d;
font-size: 14px;
line-height: 1.4;
margin: 0 0 12px
}
.purchaseButtonModal__subText {
margin: 0 0 40px
}
.purchaseButtonModal__subTextChild {
color: #777;
font-size: 12px;
line-height: 1.4;
margin-left: 1em;
text-indent: -1em
}
.purchaseButtonModal__label {
color: #3d3d3d;
font-size: 14px;
font-weight: 700;
margin-bottom: 4px
}
.purchaseButtonModal__information {
display: flex;
background: #f0f1f4;
padding: 8px;
border-radius: 4px;
margin: 8px auto 24px
}
.purchaseButtonModal__informationText {
margin-left: 8px;
font-size: 12px;
color: #3d3d3d;
margin-top: 0
}
.purchaseButtonModal__inputArea {
display: flex;
align-items: center;
justify-content: center
}
.purchaseButtonModal__inputAreaLabel {
margin: 0 8px;
font-size: 14px
}
.purchaseButtonModal__input {
box-sizing: border-box;
display: block;
font-size: 14px;
height: 40px;
line-height: 40px;
margin: 0 0 32px;
outline: none;
padding: 0 12px;
width: 100%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__input[type=number]::-webkit-inner-spin-button,
.purchaseButtonModal__input[type=number]::-webkit-outer-spin-button {
appearance: none
}
.purchaseButtonModal__input:placeholder-shown {
color: #c7c7cd
}
.purchaseButtonModal__input::-webkit-input-placeholder {
color: #c7c7cd;
opacity: 1
}
.purchaseButtonModal__input::-moz-placeholder {
color: #c7c7cd;
opacity: 1
}
.purchaseButtonModal__input:-ms-input-placeholder {
color: #c7c7cd
}
.purchaseButtonModal__error {
background: #fcdcdc;
border-radius: 4px;
color: #fa5171;
display: none;
font-size: 12px;
font-weight: 700;
margin: 0 0 24px;
padding: 8px;
text-align: left
}
.purchaseButtonModal__errorIcon {
margin-right: 8px;
height: auto;
vertical-align: middle;
width: 12px
}
.purchaseButtonModal__errorText {
vertical-align: middle
}
.purchaseButtonModal__btn {
border: none;
border-radius: 5px;
box-sizing: border-box;
cursor: pointer;
color: #fff;
display: block;
font-size: 16px;
height: 40px;
line-height: 40px;
margin: 0 auto;
outline: none;
padding: 0;
text-align: center;
transition: .3s;
width: 280px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__btn:hover {
opacity: .7;
transition: .3s
}
.purchaseButtonModal__btn--submit {
background: #000
}
.purchaseButtonModal__btn--submit:disabled {
cursor: not-allowed;
opacity: .7
}
.purchaseButtonModal__btn--close {
background: #999
}
.purchaseButtonModal__closeIcon {
background: none;
border: none;
cursor: pointer;
margin: 0;
height: 16px;
outline: none;
padding: 0;
position: absolute;
top: 26px;
right: 26px;
width: 16px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.purchaseButtonModal__closeIcon:after,
.purchaseButtonModal__closeIcon:before {
background: #3d3d3d;
content: "";
display: block;
position: absolute;
top: 7px;
right: -3px;
height: 2px;
width: 22px
}
.purchaseButtonModal__closeIcon:before {
transform: rotate(45deg)
}
.purchaseButtonModal__closeIcon:after {
transform: rotate(-45deg)
}
.purchaseButtonModal__ageVerificationWarningText {
font-size: 12px;
font-weight: 700;
text-align: center;
margin-bottom: 16px
}
.si-information:before {
content: "\e919";
font-family: shopicon;
font-style: normal;
font-weight: 400
}
.purchaseButtonModal__inner.ageVerificationModal__inner {
text-align: center
}
.purchaseButtonModal__inner.ageVerificationModal__footer {
border-top: 1px solid #f0f1f4
}
.purchaseButtonModal__input.ageVerificationModal__input {
margin: 0;
width: auto
}
.purchaseButtonModal__input.ageVerificationModal__input[aria-invalid=true] {
border-color: #fa5171;
background-color: #ffe5e9
}
.purchaseButtonModal__error.ageVerificationModal__error {
background: none;
text-align: center;
margin: 0
}
@media screen and (max-width:828px) {
.is_restockMailNotificationModalOpen #mainContent {
position: static
}
.purchaseButtonModal__container {
border-radius: 0;
box-shadow: none;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%
}
.purchaseButtonModal__title {
font-size: 16px;
line-height: 48px;
padding: 0 30px
}
.purchaseButtonModal__inner {
padding: 16px
}
.purchaseButtonModal__closeIcon {
top: 16px;
right: 16px
}
.purchaseButtonModal__input {
background: #fff;
border: 1px solid #bbb
}
.purchaseButtonModal__btn {
height: 55px;
line-height: 55px;
width: 100%
}
.is_success .purchaseButtonModal__container {
height: auto
}
}
</style>
<script>
($ => {
if (window.__initPurchaseButtonModal) {
window.removeEventListener('DOMContentLoaded', window.__initPurchaseButtonModal)
}
window.__initPurchaseButtonModal = function() {
const KEYCODE_ENTER = 13;
const MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION = 'restockMailNotification';
const MODAL_TYPE_AGE_VERIFICATION = 'ageVerification';
const $modals = $('.x_purchaseButtonModal')
$modals.remove()
document.body.appendChild($modals[0])
var modalType = '';
const showPurchaseButtonModal = (type) => {
// 文字入れオプションのinput 等のフォーカスを外す
document.activeElement.blur();
$('.purchaseButtonModal__title').each((_i, el) => {
$(el).hide();
});
$('.purchaseButtonModal__inner').each((_i, el) => {
$(el).hide();
});
$(`.purchaseButtonModal__title[data-type="${type}"]`).show();
$(`.purchaseButtonModal__inner[data-type="${type}"]`).show();
$('.x_purchaseButtonModal').fadeIn(250).css('display', 'flex');
$('.x_purchaseButtonModal').attr('id', `${type}Modal`);
$('body').addClass('is_purchaseButtonModalOpen');
modalType = type;
};
const hidePurchaseButtonModal = function() {
$('.x_purchaseButtonModal').fadeOut(150);
$('body').removeClass('is_purchaseButtonModalOpen');
};
$('.x_restockMailNotificationModalOpen').on('click', function() {
showPurchaseButtonModal(MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION);
});
$('.x_purchaseButtonModalClose, .x_purchaseButtonModal').on('click', function() {
hidePurchaseButtonModal();
});
$('.x_purchaseButtonModalInner').on('click', function(event) {
event.stopPropagation();
});
$('.x_purchaseButtonModalSubmit').on('click', function() {
purchaseButtonModalSubmit();
});
$(".x_purchaseButtonModalInput").on('keypress', function(ev) {
if ((ev.which && ev.which === KEYCODE_ENTER) || (ev.keyCode && ev.keyCode === KEYCODE_ENTER)) {
purchaseButtonModalSubmit()
return false;
} else {
return true;
}
});
var purchaseButtonModalSubmit = function() {
$('.x_purchaseButtonModalError').hide();
$('.x_purchaseButtonModalErrorText').text('')
$(this).prop('disabled', true);
modalRequestFunction().then(function(data) {
onSuccessModalRequest();
}).catch(function(errorText) {
$('.x_purchaseButtonModalError').show();
$('.x_purchaseButtonModalErrorText').text(errorText);
}).finally(function() {
$('.x_purchaseButtonModalSubmit').prop('disabled', false);
});
};
var modalRequestFunction = function() {
if (modalType === MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION) {
return requestRestockMailNotification();
} else if (modalType === MODAL_TYPE_AGE_VERIFICATION) {
return requestAgeVerification();
}
};
var onSuccessModalRequest = function() {
if (modalType === MODAL_TYPE_RESTOCK_MAIL_NOTIFICATION) {
$('.x_purchaseButtonModal').addClass('is_success');
} else if (modalType === MODAL_TYPE_AGE_VERIFICATION) {
onAgeVerificationSubmit();
}
};
// 再入荷通知
var requestRestockMailNotification = function() {
var selectedVariation = $('[name="select"]');
var variation_id = null;
if (selectedVariation.length > 0) {
variation_id = selectedVariation.val();
}
var data = {
shop_id: 'brooch01-shopselect-net',
item_id: 62612419,
variation_id: variation_id,
notification_address: $('.x_purchaseButtonModalInput').val(),
};
return new Promise(function(resolve, reject) {
$.ajax({
type: 'POST',
url: '/restock_mail_notification/restock_mail_notification_api/subscribe',
dataType: 'JSON',
data: JSON.stringify(data)
}).then(function(data) {
resolve(data);
}, function(jqXHR) {
reject(JSON.parse(jqXHR.responseText).error.user_message);
})
});
};
// 年齢確認
const COOKIE_KEY_FOR_AGE_VARIFICATION = 'AgeVerificationModalCheckisCompleted' + 'brooch01-shopselect-net';
var ageVerificationAge = $('.x_ageVerificationAge').val();
var $ageVerificationInput = $('.x_ageVerificationInput');
var $ageVerificationError = $('.x_ageVerificationError');
var $ageVerificationButton = $('.x_ageVerificationSubmit');
var ageVerificationTargetForm = null;
var requestAgeVerification = function() {
return new Promise(function(resolve, reject) {
if (checkAgeWithUI($ageVerificationInput.val())) {
resolve();
}
reject();
});
};
var onAgeVerificationSubmit = function() {
if (ageVerificationTargetForm) {
if (!validateSubmitButton(ageVerificationTargetForm)) {
hidePurchaseButtonModal();
return
}
setCookieForAgeVerificationCheck();
ageVerificationTargetForm.submit();
}
};
var validateSubmitButton = function(form) {
if (!form.classList.contains('x_purchaseForm')) {
return true;
}
// 商品オプションあり時のバリデーションエラーがないか button の disabled 状態で判定
// button が存在し disabled だった場合のみ false
var button = form.querySelector('.purchaseButton__btn');
return button ? !button.disabled : true;
};
var getCookie = function(name) {
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));
return matches ? decodeURIComponent(matches[1]) : undefined;
};
var isCompleteAgeVerificationCheck = function() {
return !!getCookie(COOKIE_KEY_FOR_AGE_VARIFICATION);
};
var setCookieForAgeVerificationCheck = function() {
if (!isCompleteAgeVerificationCheck()) {
document.cookie = COOKIE_KEY_FOR_AGE_VARIFICATION + "=true; max-age=3600";
}
};
var shouldShowAgeVerificationModal = function() {
return !isCompleteAgeVerificationCheck();
};
var nonZeroPadded = function(string) {
if (typeof string !== 'string' || string === '') {
return '';
}
return String(Number(string));
};
var limitTo3digits = function(string) {
return string.slice(0, 3);
};
var convertToHalfWidthNumber = function(string) {
return string.replace(/[^0-90-9]/g, '').replace(/[0-9]/g, (str) => {
return String.fromCharCode(str.charCodeAt(0) - 0xFEE0);
});
};
var checkAge = function(age) {
return ageVerificationAge ? Number(age) >= ageVerificationAge : false;
};
var checkAgeWithUI = function() {
var valid = checkAge($ageVerificationInput.val());
if (valid) {
$ageVerificationError.hide();
$ageVerificationInput.attr('aria-invalid', 'false')
$ageVerificationButton.prop('disabled', false);
return true;
}
$ageVerificationError.show();
$ageVerificationInput.attr('aria-invalid', 'true')
$ageVerificationButton.prop('disabled', true);
return false;
};
var currentValue = '';
var onAgeInput = function(string) {
if (string.length > 1) {
checkAgeWithUI();
}
currentValue = string;
};
// IME 有効のとき
// (type="number" の影響で) IME 入力確定時に input 要素の既存の value がクリアされてしまうので、既存の値は currentValue にとっておき確定時にこれを利用する
var isComposing = false;
$ageVerificationInput.on('compositionstart', (e) => {
isComposing = true;
});
$ageVerificationInput.on('compositionend', (e) => {
e.target.value = limitTo3digits(nonZeroPadded(currentValue + convertToHalfWidthNumber(e.originalEvent.data)));
onAgeInput(e.target.value);
isComposing = false;
});
// IME 無効のとき(IME 入力未確定時はスキップ)
$ageVerificationInput.on('input', (e) => {
if (!isComposing) {
e.target.value = limitTo3digits(nonZeroPadded(e.target.value));
onAgeInput(e.target.value);
}
});
var closeCommunityModal = function() {
$('.communityOverlay').hide();
};
if ($('.x_ageVerificationGenre').val()) {
const classes = ['x_purchaseForm', 'x_communityPurchaseForm', 'x_communityGuestForm'];
// コミュニティモーダル購入時の動的に生成されたformによるsubmitもフックしたい & submit処理の最後に年齢確認モーダルを出したいので、documentへのイベントバブリング時にフックする
$(document).on('submit', 'form', function(e) {
// 購入フォーム or コミュニティモーダルのフォームを対象とする
if (classes.some((cls) => e.target.classList.contains(cls))) {
if (shouldShowAgeVerificationModal()) {
ageVerificationTargetForm = e.target;
closeCommunityModal();
showPurchaseButtonModal(MODAL_TYPE_AGE_VERIFICATION);
return false;
}
}
});
}
}
window.addEventListener('DOMContentLoaded', window.__initPurchaseButtonModal)
})(__BASE_JQUERY__);
</script>
</div>
<style>
body#shopDetailPage #purchase_form .purchaseButton .purchaseButton__btn--disabled:hover {
cursor: default;
opacity: 1;
}
</style>
</form>
POST /items/62612419
<form action="/items/62612419" id="x_illegalReportForm" method="post" accept-charset="utf-8">
<div style="display:none;"><input type="hidden" name="_method" value="POST"><input type="hidden" name="data[_Token][key]"
value="949745d9f1be563db82f7603fda18b3596c233e7d5f0bbd5b8476939d42c3cc67e0ef6ac2a1e3f0514546ccf660ac8a9f4d00d7761cdbfa6b035500b8b49110d" id="Token2118893653" autocomplete="off"></div> <input type="hidden" value="62612419" id="item_id">
<legend>違反商品の通報</legend>
<input type="hidden" name="data[IllegalReport][item_id]" value="62612419" id="IllegalReportItemId">
<div class="input select"><select name="data[IllegalReport][title]" required="required" id="IllegalReportTitle">
<option value="0">商品が法律に違反している</option>
<option value="1">金額が不正</option>
<option value="2">その他</option>
</select></div>
<div class="input textarea"><textarea name="data[IllegalReport][message]" placeholder="内容をご記入ください。" required="required" id="x_illegalReportMessage" cols="30" rows="6"></textarea></div><a class="btn btn-danger" id="checkSubmit">通報する</a>
<div style="display:none;"><input type="hidden" name="data[_Token][fields]" value="d3ede22794388e89f1af03652c279905a786996e%3AIllegalReport.item_id" id="TokenFields1315917622" autocomplete="off"><input type="hidden" name="data[_Token][unlocked]"
value="" id="TokenUnlocked1018664093" autocomplete="off"></div>
</form>
GET //brooch01.shopselect.net/search
<form action="//brooch01.shopselect.net/search" method="get">
<input type="text" name="q" placeholder="商品を検索" value="">
<button type="submit">search</button>
</form>
Text Content
* * search Toggle navigation * home * about * category * ブランド別 * A * B * C * D * E * F * G * H * I * J * K * L * M * N * O * P * Q * R * S * T * U * V * W * X * Y * Z * トップス・アウター * Tシャツ・カットソー * シャツ * ポロシャツ * スウェット * ニット * カーディガン * パーカー * ジャケット・ブルゾン * ベスト * コート * ワンピース * その他 * ブラウス * ボトムス * デニム * スラックス * スウェット * ナイロン * ハーフパンツ * イージーパンツ * ワイドパンツ * スカート * その他 * スーツ・セットアップ * セットアップ * シューズ * スニーカー * サンダル * レザーシューズ * ブーツ * その他 * アクセサリー・小物・バッグ * バッグ * キャップ・帽子 * リング * ピアス・イヤリング * ネックレス * バングル・ブレスレット * 時計 * 眼鏡、サングラス * ベルト * キーケース・キーリング * 財布・ウォレット * スカーフ・マフラー * ネクタイ * その他 * SALE * lady's * シーズン * ライトアウター * ヘビーアウター * 春 * 夏 * 秋 * 冬 * blog * community * contact ITEM NEEDLES ニードルズ GL179 HD PANT 6OZ DENIM ヒザデルパンツ ブラック S【表参道T05】 * * * * こちらは表参道店の商品です。 Needles ニードルズ GL179 HD PANT 6OZ DENIM ヒザデルパンツ 【表参道t05】 ★商品について★ ウエストと裾のダーツ処理によりフロントが大きくふくらんだ独特のシルエットが魅力の H.D PANT (ヒザデルパンツ)。 リラックス感のあるシルエットで、開放感のある履き心地も魅力的です。6oz デニム生地を使用し、春夏シーズンのコーディネートにオススメです。 ★コンディション★ 全体的に使用感有ります。裾破れ有ります。予めご了承ください。 写真や記載内容と実物に相違がある場合(サイズ、商品状態など)も購入後の返金、キャンセルはできかねますので、予めご了承ください。 商品状態などはメール、お電話にてお答えさせていただきますので不明点がございましたらご購入前にお問合せくださいませ。 この商品のコンディション→【C】 ★カラー★ ブラック ★サイズ★ 表記サイズ:S 平置き実寸サイズ 丈:約98cm ウエスト:約37cm 股上:約39cm 股下:約60cm わたり:約37cm 裾:約29cm ★素材★ コットン100% ¥5,800 SOLD OUT コミュニティ加入 月額料金 コミュニティページで詳細を見る ゲストとして会員になる で購入 利用規約に同意の上、会員登録してください。 ※ 選択した商品を購入するには、コミュニティの会員になる必要があります。 再入荷通知を希望する ※こちらの価格には消費税が含まれています。 ※送料は別途発生いたします。詳細はこちら 送料について この商品の配送方法は下記のとおりです。 * ゆうパック 日本郵便が提供する宅配サービスです。荷物追跡に対応しています。 地域別設定 * 北海道 * 北海道 ¥1,000 * 東北 * 青森県 ¥700 * 岩手県 ¥700 * 宮城県 ¥700 * 秋田県 ¥700 * 山形県 ¥700 * 福島県 ¥700 * 関東 * 茨城県 ¥700 * 栃木県 ¥700 * 群馬県 ¥700 * 埼玉県 ¥700 * 千葉県 ¥700 * 東京都 ¥700 * 神奈川県 ¥700 * 山梨県 ¥700 * 信越 * 新潟県 ¥700 * 長野県 ¥700 * 北陸 * 富山県 ¥700 * 石川県 ¥700 * 福井県 ¥700 * 東海 * 岐阜県 ¥700 * 静岡県 ¥700 * 愛知県 ¥700 * 三重県 ¥700 * 近畿 * 滋賀県 ¥700 * 京都府 ¥700 * 大阪府 ¥700 * 兵庫県 ¥700 * 奈良県 ¥700 * 和歌山県 ¥700 * 中国 * 鳥取県 ¥700 * 島根県 ¥700 * 岡山県 ¥700 * 広島県 ¥700 * 山口県 ¥700 * 四国 * 徳島県 ¥700 * 香川県 ¥700 * 愛媛県 ¥700 * 高知県 ¥700 * 九州 * 福岡県 ¥700 * 佐賀県 ¥700 * 長崎県 ¥700 * 熊本県 ¥700 * 大分県 ¥700 * 宮崎県 ¥700 * 鹿児島県 ¥700 * 沖縄 * 沖縄県 ¥1,000 通報する 違反商品の通報 商品が法律に違反している 金額が不正 その他 通報する error 関連商品 * Acne Studios アクネストゥディオス アシンメトリックプリーツスカート グレー系 32 【代官山k9】 ¥6,000 * AiE エーアイイー 切り替えデニムパンツ SIZE34(Lサイズ相当)【表参道t02】 ¥11,800 * Name. ネーム ェックパンツ SIZE 1 パープル 【代官山05】 ¥5,800 SEARCH商品検索 search CATEGORYカテゴリー * ブランド別 * A * B * C * D * E * F * G * H * I * J * K * L * M * N * O * P * Q * R * S * T * U * V * W * X * Y * Z * トップス・アウター * Tシャツ・カットソー * シャツ * ポロシャツ * スウェット * ニット * カーディガン * パーカー * ジャケット・ブルゾン * ベスト * コート * ワンピース * その他 * ブラウス * ボトムス * デニム * スラックス * スウェット * ナイロン * ハーフパンツ * イージーパンツ * ワイドパンツ * スカート * その他 * スーツ・セットアップ * セットアップ * シューズ * スニーカー * サンダル * レザーシューズ * ブーツ * その他 * アクセサリー・小物・バッグ * バッグ * キャップ・帽子 * リング * ピアス・イヤリング * ネックレス * バングル・ブレスレット * 時計 * 眼鏡、サングラス * ベルト * キーケース・キーリング * 財布・ウォレット * スカーフ・マフラー * ネクタイ * その他 * SALE * lady's * シーズン * ライトアウター * ヘビーアウター * 春 * 夏 * 秋 * 冬 GUIDEご利用ガイド * ブランド古着broochについて * お問合せ * プライバシーポリシー * 特定商取引法に基づく表記 LINKリンク * Official site * Instagram * Facebook * YouTube ◆ショッピングガイド◆ ※ご購入前に必ずお読み下さい。 TOP ブランド古着brooch【代官山店】 東京都渋谷区代官山町13-8-101 【表参道店】 東京都港区南青山5-9-21 B1F 【中目黒店 】東京都目黒区上目黒2-44-7-103TEL:代表番号0364278254 COPYRIGHT © ブランド古着brooch ALL RIGHTS RESERVED. 再入荷のお知らせを希望する 年齢確認 再入荷されましたら、登録したメールアドレス宛にお知らせします。 メールアドレス 折返しのメールが受信できるように、ドメイン指定受信で「thebase.in」と「gmail.com」を許可するように設定してください。 登録する 再入荷のお知らせを希望する 再入荷のお知らせを受け付けました。 ご記入いただいたメールアドレス宛に確認メールをお送りしておりますので、ご確認ください。 メールが届いていない場合は、迷惑メールフォルダをご確認ください。 通知受信時に、メールサーバー容量がオーバーしているなどの理由で受信できない場合がございます。ご確認ください。 折返しのメールが受信できるように、ドメイン指定受信で「thebase.in」と「gmail.com」を許可するように設定してください。 閉じる