function OPID_CHK(str){
data = "";
inter = "'";
var strF =document.order_form
var strP =document.order_form.goods_chk.value.split("|")[8]
var goods_info =document.order_form.goods_chk.value
if(goods_info!=""){
str = strP.split(",")
// alert(str.length)
for (var k=0;k < str.length ;k++ )
{
data = data + '<select name="g_option" style="font-size:9pt" onchange="option_Echk()">'
data = data + '<option value="" selected> ---- 선택 ---- </option>'
data = data + "</select><br>";
if (document.layers) {
document.layers.textbox.document.write(data);
document.layers.textbox.document.close();
window.submenu03.style.display = "none";
}
else {
if (document.all) {
textbox.innerHTML = data;
window.submenu03.style.display = "none";
}
}
}
}
if(goods_info!=""){
for (var k=0;k < str.length ;k++ )
{
if (parseInt(str.length) == 1) {
sel = strF("g_option");
}
else{
sel = strF("g_option")[k];
}
if(str!="" && strP != ""){
var lis = eval('cg_'+str[k]+'_n');
var val = eval('cg_'+str[k]+'_v');
for(i=sel.length-1; i>=0; i--)
sel.options[i] = null;
sel.options[0] = new Option(lis[0],val[0], '', 'true');
for(i=1; i<lis.length; i++)
sel.options[i] = new Option(lis[i],val[i]);
}
else{
for(i=sel.length-1; i>=0; i--)
sel.options[i] = null;
sel.options[0] = new Option(' ---- 선택 ---- ','', '', 'true');
sel.disabled =true;
}
}
}
else {
textbox.innerHTML = '<font color="red">제품 선택시 옵션이 보여집니다.</font>';
}
}
제품을 선택하면 등록된 제품의 옵션값을 불러와서 셀렉트 박스로 뿌려주게 되있는데
구버전 explore에선 작동을 잘하지만 edge, chrome에서는 에러가 발생합니다 ㅠ
sel = strF("g_option"); <-- 이 부분이 에러가 나서 sel = document.getElementsByName("g_option"); 으로 변경을 하
였더니 sel.options[0] = new Option(lis[0],val[0], '', 'true'); 이 부분에서 에러가 나네요..
개발자도구로 확인해보면
cannot set properties of underfined (setting '0') 이라고 뜹니다.
많이 부족하다보니 왜 에러가 뜨는지 잘 모르겠네요.. 구버전과 최신버전 브라우저의 차이점이나 변경점이 있을까요?
참고로 구버전 브라우저에서도 상단부분에 <meta http-equiv="X-UA-Compatible" content="IE=edge"/> 적용시 에러
발생합니다.