fix : 쇼핑몰 주문결제화면 - 배송지 정합성 검사

This commit is contained in:
이대환
2026-03-27 14:26:07 +09:00
parent d4fc20fcec
commit d6927d16a2
2 changed files with 136 additions and 119 deletions

View File

@@ -2737,11 +2737,8 @@
const title = $(this).attr('title'); const title = $(this).attr('title');
if (fn_is_empty(val) && (name === 'recpntNm' || name === 'recpntMbtlnb')) { if (fn_is_empty(val) && (name === 'recpntNm' || name === 'recpntMbtlnb')) {
alert(title + '을 입력해 주십시요');
$('#dlvylcForm').find('input[name="' + name + '"]').focus(); $('#dlvylcForm').find('input[name="' + name + '"]').focus();
alert(title + '을 입력해 주십시오');
isValid = false; isValid = false;
return false; return false;
@@ -2752,9 +2749,14 @@
} else { } else {
// console.log("dlvylcDvCd : ",dlvylcDvCd); // console.log("dlvylcDvCd : ",dlvylcDvCd);
const requiredMap = {
KR: 'cstmclerCd',
JP: 'prefcd'
};
if ('New' === dlvylcDvCd) { if ('New' === dlvylcDvCd) {
const dlvylcAreaCd2 = $('#dlvylcForm').find('input[name="dlvylcAreaCd"]').val(); const dlvylcAreaCdNew = $('#dlvylcForm').find('input[name="dlvylcAreaCd"]').val();
console.log("dlvylcAreaCd(new) : ",dlvylcAreaCd2); // console.log("dlvylcAreaCd(new) : ",dlvylcAreaCdNew);
$('#dlvylcForm').find('.rqrd').each(function () { $('#dlvylcForm').find('.rqrd').each(function () {
@@ -2762,39 +2764,51 @@
if (fn_is_empty(val)) { if (fn_is_empty(val)) {
const name = $(this).attr('name'); const name = $(this).attr('name');
const title = $(this).attr('title');
if('JP' !== dlvylcAreaCd2 || 'cstmclerCd' !== name ) {
const title = $(this).attr('title');
alert(title + '을 입력해 주십시요');
$('#dlvylcForm').find('input[name="' + name + '"]').focus();
isValid = false;
return false;
}
}
});
} else {
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
// console.log("dlvylcAreaCd(dft) : ",dlvylcAreaCd);
if('KR' === dlvylcAreaCd){
// console.log("KR");
const val = $('#cstmclerCd').val();
if (fn_is_empty(val)) {
alert('개인통관번호를 입력해 주십시요');
$('#dlvylcForm').find('input[name="' + name + '"]').focus(); $('#dlvylcForm').find('input[name="' + name + '"]').focus();
alert(title + '을 입력해 주십시오');
isValid = false; isValid = false;
return false; return false;
} }
});
const required = requiredMap[dlvylcAreaCdNew];
if (required) {
const $input = $('input.new[name="' + required + '"]');
const title = $input.attr('title');
const value = $input.val();
if (fn_is_empty(value)) {
alert(title + '을 입력해 주십시오');
isValid = false;
return false;
}
}
} else {
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
// console.log("dlvylcAreaCd(dft) : ",dlvylcAreaCd);
const required = requiredMap[dlvylcAreaCd];
if (required) {
const $input = $('input.new[name="' + required + '"]');
const title = $input.attr('title');
const value = $input.val();
if (fn_is_empty(value)) {
alert(title + '을 입력해 주십시오');
isValid = false;
return false;
}
} else {
alert('배송지역코드를 입력해 주십시오');
isValid = false;
return false;
} }
} }
} }
@@ -3672,28 +3686,24 @@
<span class="orderInfo__text recpntMbtlnb_ordrInfo_text"><c:out value="${dftDlvylc.mbtlnb}"/></span> <span class="orderInfo__text recpntMbtlnb_ordrInfo_text"><c:out value="${dftDlvylc.mbtlnb}"/></span>
</td> </td>
</tr> </tr>
<c:choose> <c:if test="${dftDlvylc.dlvylcAreaCd eq 'KR'}">
<c:when test="${dftDlvylc.dlvylcAreaCd eq 'KR'}"> <tr class="deliveryAddressDefault">
<tr class="deliveryAddressDefault"> <th><span class="orderInfo__title">개인통관번호</span></th>
<th><span class="orderInfo__title">개인통관번호</span></th> <td>
<td> <input type="hidden" id="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>">
<input type="hidden" id="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>"> <span class="orderInfo__text cstmclerCd_ordrInfo_text">
<%-- <span class="orderInfo__text cstmclerCd_ordrInfo_text"><c:out value="${dftDlvylc.cstmclerCd}"/></span>--%>
<c:choose> <c:choose>
<c:when test="${not empty dftDlvylc.cstmclerCd}"> <c:when test="${not empty dftDlvylc.cstmclerCd}">
<input type="text" name="cstmclerCd" maxlength="13" class="orderInfo__text cstmclerCd_ordrInfo_text" title="개인통관번호" value="<c:out value="${dftDlvylc.cstmclerCd}"/>" placeholder="배송지 관리에서 입력하세요."> <c:out value="${dftDlvylc.cstmclerCd}"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<input type="text" name="cstmclerCd" maxlength="13" class="orderInfo__text cstmclerCd_ordrInfo_text" title="개인통관번호" value="<c:out value="${dftDlvylc.cstmclerCd}"/>" placeholder="배송지 관리에서 입력하세요." readonly> 배송지 관리에서 입력하세요.
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</tr> </span>
</td> </td>
</c:when> </tr>
<c:otherwise> </c:if>
<input type="hidden" id="cstmclerCd" name="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>">
</c:otherwise>
</c:choose>
<!-- 기본 배송지 선택 시 End --> <!-- 기본 배송지 선택 시 End -->
<!-- 신규 배송지 선택 시 Start --> <!-- 신규 배송지 선택 시 Start -->
<tr class="deliveryAddressNew" style="display:none;"> <tr class="deliveryAddressNew" style="display:none;">
@@ -3714,9 +3724,8 @@
<input type="hidden" name="dlvylcAdresDvCd" class="new"> <input type="hidden" name="dlvylcAdresDvCd" class="new">
<input type="hidden" name="dlvylcLnbAdres" class="new"> <input type="hidden" name="dlvylcLnbAdres" class="new">
<input type="hidden" name="dlvylcRnmAdres" class="new"> <input type="hidden" name="dlvylcRnmAdres" class="new">
<input type="hidden" name="dlvylcAreaCd" class="new"> <input type="hidden" name="dlvylcAreaCd" class="new rqrd" title="배송지역코드">
<input type="hidden" name="prefcd" class="new"> <input type="hidden" name="prefcd" class="new" title="도도부현코드">
<input type="hidden" name="cstmclerCd" class="new">
</div> </div>
</td> </td>
</tr> </tr>
@@ -3729,7 +3738,7 @@
<tr class="deliveryAddressNew cstmclerArea" style="display:none;"> <tr class="deliveryAddressNew cstmclerArea" style="display:none;">
<th> <span class="orderInfo__title">개인통관번호</span></th> <th> <span class="orderInfo__title">개인통관번호</span></th>
<td> <td>
<input type="text" name="cstmclerCd" maxlength="13" class="new rqrd input-text rqrd_gift" title="개인통관번호" placeholder="배송지 관리에서 입력하세요." readonly> <input type="text" name="cstmclerCd" maxlength="13" class="new input-text" title="개인통관번호" placeholder="배송지 관리에서 입력하세요." readonly>
</td> </td>
</tr> </tr>
<!-- 신규 배송지 선택 시 End --> <!-- 신규 배송지 선택 시 End -->

View File

@@ -2719,11 +2719,8 @@
const title = $(this).attr('title'); const title = $(this).attr('title');
if (fn_is_empty(val) && (name === 'recpntNm' || name === 'recpntMbtlnb')) { if (fn_is_empty(val) && (name === 'recpntNm' || name === 'recpntMbtlnb')) {
alert(title + '을 입력해 주십시요');
$('#dlvylcForm').find('input[name="' + name + '"]').focus(); $('#dlvylcForm').find('input[name="' + name + '"]').focus();
alert(title + '을 입력해 주십시오');
isValid = false; isValid = false;
return false; return false;
@@ -2734,49 +2731,65 @@
} else { } else {
// console.log("dlvylcDvCd : ",dlvylcDvCd); // console.log("dlvylcDvCd : ",dlvylcDvCd);
if ('New' === dlvylcDvCd) { const requiredMap = {
const dlvylcAreaCd2 = $('#dlvylcForm').find('input[name="dlvylcAreaCd"]').val(); KR: 'cstmclerCd',
console.log("dlvylcAreaCd(new) : ",dlvylcAreaCd2); JP: 'prefcd'
};
if ('New' === dlvylcDvCd) {
const dlvylcAreaCdNew = $('#dlvylcForm').find('input[name="dlvylcAreaCd"]').val();
// console.log("dlvylcAreaCd(new) : ",dlvylcAreaCdNew);
$('#dlvylcForm').find('.rqrd').each(function () { $('#dlvylcForm').find('.rqrd').each(function () {
const val = $(this).val(); const val = $(this).val();
if (fn_is_empty(val)) { if (fn_is_empty(val)) {
const name = $(this).attr('name'); const name = $(this).attr('name');
const title = $(this).attr('title');
if('JP' !== dlvylcAreaCd2 || 'cstmclerCd' !== name ) {
const title = $(this).attr('title');
alert(title + '을 입력해 주십시요');
$('#dlvylcForm').find('input[name="' + name + '"]').focus();
isValid = false;
return false;
}
}
});
} else {
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
// console.log("dlvylcAreaCd(dft) : ",dlvylcAreaCd);
if('KR' === dlvylcAreaCd){
// console.log("KR");
const val = $('#cstmclerCd').val();
if (fn_is_empty(val)) {
alert('개인통관번호를 입력해 주십시오');
$('#dlvylcForm').find('input[name="' + name + '"]').focus(); $('#dlvylcForm').find('input[name="' + name + '"]').focus();
alert(title + '을 입력해 주십시오');
isValid = false; isValid = false;
return false; return false;
} }
});
const required = requiredMap[dlvylcAreaCdNew];
if (required) {
const $input = $('input.new[name="' + required + '"]');
const title = $input.attr('title');
const value = $input.val();
if (fn_is_empty(value)) {
alert(title + '을 입력해 주십시오');
isValid = false;
return false;
}
}
} else {
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
// console.log("dlvylcAreaCd(dft) : ",dlvylcAreaCd);
const required = requiredMap[dlvylcAreaCd];
if (required) {
const $input = $('input.new[name="' + required + '"]');
const title = $input.attr('title');
const value = $input.val();
if (fn_is_empty(value)) {
alert(title + '을 입력해 주십시오');
isValid = false;
return false;
}
} else {
alert('배송지역코드를 입력해 주십시오');
isValid = false;
return false;
} }
} }
} }
@@ -2823,7 +2836,7 @@
let name = $(this).attr('name'); let name = $(this).attr('name');
let title = $(this).attr('title'); let title = $(this).attr('title');
alert(title + '을 입력해 주십시요'); alert(title + '을 입력해 주십시오');
$(form).find('input[name="' + name + '"]').focus(); $(form).find('input[name="' + name + '"]').focus();
@@ -2898,7 +2911,7 @@
const id = $(this).attr('id'); const id = $(this).attr('id');
const title = $(this).attr('title'); const title = $(this).attr('title');
alert(title + ' 항목을 입력해 주십시요'); alert(title + ' 항목을 입력해 주십시오');
$('#' + id).focus(); $('#' + id).focus();
@@ -2950,7 +2963,7 @@
if (fn_is_empty(pgCmpnyNm)) { if (fn_is_empty(pgCmpnyNm)) {
alert('결제유형을 선택해 주십시요.'); alert('결제유형을 선택해 주십시오.');
return false; return false;
} }
@@ -2959,7 +2972,7 @@
const div = $('#setleForm').find('.order-method-normal'); const div = $('#setleForm').find('.order-method-normal');
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) { if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
alert('결제방법을 선택해 주십시요.'); alert('결제방법을 선택해 주십시오.');
isValid = false; isValid = false;
@@ -2971,7 +2984,7 @@
const input = $(div).find('#rcpmnyerNm'); const input = $(div).find('#rcpmnyerNm');
if (fn_is_empty($(input).val())) { if (fn_is_empty($(input).val())) {
alert($(input).attr('title') + ' 항목을 입력해 주십시요'); alert($(input).attr('title') + ' 항목을 입력해 주십시오');
$('#' + $(input).attr('id')).focus(); $('#' + $(input).attr('id')).focus();
@@ -2983,7 +2996,7 @@
const rcpmnyAcntnb = $(div).find('#rcpmnyAcntnb option:selected'); const rcpmnyAcntnb = $(div).find('#rcpmnyAcntnb option:selected');
if (fn_is_empty($(rcpmnyAcntnb).val())) { if (fn_is_empty($(rcpmnyAcntnb).val())) {
alert($(div).find('#rcpmnyAcntnb').attr('title') + ' 항목을 선택해 주십시요'); alert($(div).find('#rcpmnyAcntnb').attr('title') + ' 항목을 선택해 주십시오');
return false; return false;
} }
@@ -3007,7 +3020,7 @@
const input = $(div).find('#' + id); const input = $(div).find('#' + id);
if (fn_is_empty($(input).val())) { if (fn_is_empty($(input).val())) {
alert($(div).find('#' + id).attr('title') + ' 항목을 입력해 주십시요'); alert($(div).find('#' + id).attr('title') + ' 항목을 입력해 주십시오');
$(div).find('#' + id).focus(); $(div).find('#' + id).focus();
@@ -3028,7 +3041,7 @@
const input = $(content).find('#' + id); const input = $(content).find('#' + id);
if (fn_is_empty($(input).val())) { if (fn_is_empty($(input).val())) {
alert($(content).find('#' + id).attr('title') + ' 항목을 입력해 주십시요'); alert($(content).find('#' + id).attr('title') + ' 항목을 입력해 주십시오');
$(content).find('#' + id).focus(); $(content).find('#' + id).focus();
@@ -3087,7 +3100,7 @@
const input = $(content).find('#' + id); const input = $(content).find('#' + id);
if (fn_is_empty($(input).val())) { if (fn_is_empty($(input).val())) {
alert($(content).find('#' + id).attr('title') + ' 항목을 입력해 주십시요'); alert($(content).find('#' + id).attr('title') + ' 항목을 입력해 주십시오');
$(content).find('#' + id).focus(); $(content).find('#' + id).focus();
@@ -3653,28 +3666,24 @@
<span class="orderInfo__text recpntMbtlnb_ordrInfo_text"><c:out value="${dftDlvylc.mbtlnb}"/></span> <span class="orderInfo__text recpntMbtlnb_ordrInfo_text"><c:out value="${dftDlvylc.mbtlnb}"/></span>
</td> </td>
</tr> </tr>
<c:choose> <c:if test="${dftDlvylc.dlvylcAreaCd eq 'KR'}">
<c:when test="${dftDlvylc.dlvylcAreaCd eq 'KR'}"> <tr class="deliveryAddressDefault">
<tr class="deliveryAddressDefault"> <th><span class="orderInfo__title">개인통관번호</span></th>
<th><span class="orderInfo__title">개인통관번호</span></th> <td>
<td> <input type="hidden" id="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>">
<input type="hidden" id="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>"> <span class="orderInfo__text cstmclerCd_ordrInfo_text">
<%-- <span class="orderInfo__text cstmclerCd_ordrInfo_text"><c:out value="${dftDlvylc.cstmclerCd}"/></span>--%>
<c:choose> <c:choose>
<c:when test="${not empty dftDlvylc.cstmclerCd}"> <c:when test="${not empty dftDlvylc.cstmclerCd}">
<input type="text" name="cstmclerCd" maxlength="13" class="orderInfo__text cstmclerCd_ordrInfo_text" title="개인통관번호" value="<c:out value="${dftDlvylc.cstmclerCd}"/>" placeholder="배송지 관리에서 입력하세요."> <c:out value="${dftDlvylc.cstmclerCd}"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<input type="text" name="cstmclerCd" maxlength="13" class="orderInfo__text cstmclerCd_ordrInfo_text" title="개인통관번호" value="<c:out value="${dftDlvylc.cstmclerCd}"/>" placeholder="배송지 관리에서 입력하세요." readonly> 배송지 관리에서 입력하세요.
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</tr> </span>
</td> </td>
</c:when> </tr>
<c:otherwise> </c:if>
<input type="hidden" id="cstmclerCd" name="cstmclerCd" class="dft" value="<c:out value="${dftDlvylc.cstmclerCd}"/>">
</c:otherwise>
</c:choose>
<!-- 기본 배송지 선택 시 End --> <!-- 기본 배송지 선택 시 End -->
<!-- 신규 배송지 선택 시 Start --> <!-- 신규 배송지 선택 시 Start -->
<tr class="deliveryAddressNew" style="display:none;"> <tr class="deliveryAddressNew" style="display:none;">
@@ -3695,9 +3704,8 @@
<input type="hidden" name="dlvylcAdresDvCd" class="new"> <input type="hidden" name="dlvylcAdresDvCd" class="new">
<input type="hidden" name="dlvylcLnbAdres" class="new"> <input type="hidden" name="dlvylcLnbAdres" class="new">
<input type="hidden" name="dlvylcRnmAdres" class="new"> <input type="hidden" name="dlvylcRnmAdres" class="new">
<input type="hidden" name="dlvylcAreaCd" class="new"> <input type="hidden" name="dlvylcAreaCd" class="new rqrd" title="배송지역코드">
<input type="hidden" name="prefcd" class="new"> <input type="hidden" name="prefcd" class="new" title="도도부현코드">
<input type="hidden" name="cstmclerCd" class="new">
</div> </div>
</td> </td>
</tr> </tr>
@@ -3710,7 +3718,7 @@
<tr class="deliveryAddressNew cstmclerArea" style="display:none;"> <tr class="deliveryAddressNew cstmclerArea" style="display:none;">
<th> <span class="orderInfo__title">개인통관번호</span></th> <th> <span class="orderInfo__title">개인통관번호</span></th>
<td> <td>
<input type="text" name="cstmclerCd" maxlength="13" class="new rqrd input-text rqrd_gift" title="개인통관번호" placeholder="배송지 관리에서 입력하세요." readonly> <input type="text" name="cstmclerCd" maxlength="13" class="new input-text" title="개인통관번호" placeholder="배송지 관리에서 입력하세요." readonly>
</td> </td>
</tr> </tr>
<!-- 신규 배송지 선택 시 End --> <!-- 신규 배송지 선택 시 End -->