주문자와 동일 체크시 추가해준 입력란에 value 값이 들어가지 않습니다.
본문
안녕하세요? 항상 도움 많이 받고 있습니다. 감사합니다.
제가 주문자 정보에 해외 배송 칸을 추가해서 해당 입력란에 주소를 입력해서 주문자와 동일 라디오 버튼을 클릭하면 주소가 국내주소 처럼 동일한 내용이 입력되게 하려고 합니다. 제가 고친 코드는 이런데 라디오 버튼 작용 자체가 안 되는거 같습니다.
<div class="form-group has-feedback" id="b_overseas_hidden_fields">
<label class="col-sm-2 control-label"><b>해외배송주소</b><strong class="sound_only">필수</strong></label>
<div class="col-sm-8">
<div class="addr-line">
<label class="sound_only" for="b_overseas_address_line1">Address line 1</label>
<input type="text" name="b_overseas_address_line1" id="b_overseas_address_line1" class="form-control input-sm" size="50" placeholder="Address line 1">
</div>
<div class="addr-line">
<label class="sound_only" for="b_overseas_address_line2">Address line 2 (optional)</label>
<input type="text" name="b_overseas_address_line2" id="b_overseas_address_line2" class="form-control input-sm" size="50" placeholder="Address line 2 (optional)">
</div>
<div class="addr-line">
<label class="sound_only" for="b_overseas_city">City</label>
<input type="text" name="b_overseas_city" id="b_overseas_city" class="form-control input-sm" size="50" placeholder="City">
</div>
<div class="addr-line">
<label class="sound_only" for="b_overseas_state">State / Province / Region</label>
<input type="text" name="b_overseas_state" id="b_overseas_state" class="form-control input-sm" size="50" placeholder="State / Province / Region">
</div>
<div class="addr-line">
<label class="sound_only" for="b_overseas_postal_code">Postal code</label>
<input type="text" name="b_overseas_postal_code" id="b_overseas_postal_code" class="form-control input-sm" placeholder="Postal code">
</div>
</div>
</div>
<script>
$(function() {
var checkbox = $("#overseas_shipping_checkbox");
var hidden = $("#overseas_hidden_fields");
var address_form = $("#address_form");
// 필드를 숨깁니다.
hidden.hide();
// 체크박스 상태가 변경될 때 이벤트 수신기를 설정합니다.
checkbox.change(function() {
// 체크박스가 체크되어 있으면
// 체크된 경우 필드를 표시
// 체크가 되지 않은 경우 필드를 숨깁니다.
if (checkbox.is(":checked")) {
// 숨겨진 필드를 표시합니다.
hidden.show();
address_form.hide();
} else {
// 숨겨진 필드를 숨깁니다.
hidden.hide();
address_form.show();
}
});
});
</script>
<script>
$(function() {
var checkbox = $("#b_overseas_shipping_checkbox");
var hidden = $("#b_overseas_hidden_fields");
var address_form = $("#b_address_form");
// 필드를 숨깁니다.
hidden.hide();
// 체크박스 상태가 변경될 때 이벤트 수신기를 설정합니다.
checkbox.change(function() {
// 체크박스가 체크되어 있으면
// 체크된 경우 필드를 표시
// 체크가 되지 않은 경우 필드를 숨깁니다.
if (checkbox.is(":checked")) {
// 숨겨진 필드를 표시합니다.
hidden.show();
address_form.hide();
} else {
// 숨겨진 필드를 숨깁니다.
hidden.hide();
address_form.show();
}
});
});
</script>
orderform.sub.php
// 배송지선택
$("input[name=ad_sel_addr]").on("click", function() {
var addr = $(this).val().split(String.fromCharCode(30));
if (addr[0] == "same") {
gumae2baesong();
} else {
if(addr[0] == "new") {
for(i=0; i<10; i++) {
addr[i] = "";
}
}
var f = document.forderform;
f.od_b_name.value = addr[0];
f.od_b_tel.value = addr[1];
f.od_b_hp.value = addr[2];
f.od_b_zip.value = addr[3] + addr[4];
f.od_b_addr1.value = addr[5];
f.od_b_addr2.value = addr[6];
f.od_b_addr3.value = addr[7];
f.od_b_addr_jibeon.value = addr[8];
f.ad_subject.value = addr[9];
f.b_overseas_country.value = addr[10];
f.b_overseas_address_line1.value = addr[11];
f.b_overseas_address_line2.value = addr[12];
f.b_overseas_city.value = addr[13];
f.b_overseas_state.value = addr[14];
f.b_overseas_postal_code.value = addr[15];
var zip1 = addr[3].replace(/[^0-9]/g, "");
var zip2 = addr[4].replace(/[^0-9]/g, "");
var code = String(zip1) + String(zip2);
if(zipcode != code) {
calculate_sendcost(code);
}
}
});
// 구매자 정보와 동일합니다.
function gumae2baesong() {
var f = document.forderform;
f.od_b_name.value = f.od_name.value;
f.od_b_tel.value = f.od_tel.value;
f.od_b_hp.value = f.od_hp.value;
f.od_b_zip.value = f.od_zip.value;
f.od_b_addr1.value = f.od_addr1.value;
f.od_b_addr2.value = f.od_addr2.value;
f.od_b_addr3.value = f.od_addr3.value;
f.od_b_addr_jibeon.value = f.od_addr_jibeon.value;
f.b_overseas_country.value.value = f.overseas_country.value;
f.b_overseas_address_line1.value = f.overseas_address_line1.value;
f.b_overseas_address_line2.value = f.overseas_address_line2.value
f.b_overseas_city.value = f.overseas_city.value;
f.b_overseas_state.value = f.overseas_state.value;
f.b_overseas_postal_code.value = f.overseas_postal_code.value;
calculate_sendcost(String(f.od_b_zip.value));
}
답변 2
<form name="forderform" id="forderform" method="post" action="">
</form>
폼에 id를 부여하시고
아래와 같이 자바스크립트를 변경해 보세요..
function gumae2baesong() {
var f = document.getElementById("forderform");
var f = 이 부분을 아이디로 선택하세요.
그리고 각 f.od_b_name 과 같이 각 폼네임이 정확하게 일치하거나 중복으로 되어 있지 않은지도 확인해 보세요...
개발자 툴 콘솔 창에서
JavaScript 에러가 있는지 확인해 보세요.