| 제목 | 배열값을 부모창으로 값을 넘길때 에러질문 | ||
|---|---|---|---|
| 글쓴이 | ssukai | 작성시각 | 2012/01/03 15:33:36 |
|
|
|||
|
우편번호 찾기를 만들고 있는데요
var $form = $(opener.document).find('#'+form_id);
$form.find('input:[name=' + m_post1 + ']').eq(m_eq).val(addr);
opener 부모창으로 값을 넘겨 줄때 에러도 안나고 값도 안넘어 갑니다.배열로 안넘겨 줄경우는 제대로 동작 합니다. jquery.js 4095번째줄에서 에러가 나네여 예외가 throw 됐지만 catch 할수 없습니다. 라고 에러가 나네여. |
|||
| 다음글 | 이클립스 RSE와 SVN 연동 (4) | ||
| 이전글 | 페이징 영역에 이상한 작은점이 생깁니다. (2) | ||
|
ssukai
/
2012/01/03 16:09:27 /
추천
0
|
|
한대승(불의회상)
/
2012/01/03 18:00:10 /
추천
0
^^
수고 하셨습니다. |
|
mixiaoli
이 경우에는 폼값 전체를 배열로 넘기기보다, 몇 번째 주소 입력창인지 나타내는 index 값만 새창으로 넘기는 방식으로 처리하시면 편합니다. 예를 들어 부모창에서 주소입력 폼이 <input type="text" name="zipcode[]" id="zipcode_0">
<input type="text" name="addr1[]" id="addr1_0"> <input type="button" value="우편번호찾기" onclick="open_zip(0)"> <input type="text" name="zipcode[]" id="zipcode_1"> <input type="text" name="addr1[]" id="addr1_1"> <input type="button" value="우편번호찾기" onclick="open_zip(1)"> 이런 식이라면, 새창 열 때 현재 순번만 넘깁니다. function open_zip(idx)
{ window.open('/zip/search?idx=' + idx, 'zipWin', 'width=500,height=600'); } 그리고 새창에서 주소를 선택했을 때 부모창에 값을 넣을 때는 function setAddress(zipcode, addr1, idx)
{ opener.document.getElementById('zipcode_' + idx).value = zipcode; opener.document.getElementById('addr1_' + idx).value = addr1; window.close(); } 주소 목록에서 클릭할 때는 이런 식으로 호출하면 됩니다. <a href="#" onclick="setAddress('123-456', '서울시 강남구 ...', '<?php echo $idx?>'); return false;">
서울시 강남구 ... </a> 즉 핵심은:
게시판 답변용으로는 이렇게 써도 자연스럽습니다. 이 경우에는 배열 전체를 넘기려고 하지 마시고,
몇 번째 주소폼인지 나타내는 index 값만 새창으로 넘기시는 것이 좋습니다. 예를 들어 부모창에서 우편번호찾기 버튼 클릭 시 open_zip(0) open_zip(1) 이런 식으로 index를 넘기고, 새창에서는 그 idx 값을 받아두었다가 주소를 클릭했을 때 opener 를 이용해서 부모창의 해당 input 에 값을 넣어주시면 됩니다. 즉, opener.document.getElementById('zipcode_'+idx).value = 우편번호; opener.document.getElementById('addr1_'+idx).value = 주소; 이런 식으로 처리하시면 여러 개의 주소입력 폼이 있어도 선택한 위치에 맞게 값을 넣을 수 있습니다. 배열 name(zipcode[], addr1[])만 믿고 처리하기보다는 id에 index를 붙여서 구분하는 방식이 훨씬 편합니다. |
해결 했습니다.jquery 문제 엿네여..
$form.find(
'input:[name="'+ m_post1 +'"]').eq(m_eq).val(addr);