개발 Q&A

제목 ajax 을 통해 출력한 input 필드에 datapicker 적용이 안되네요 ㅜㅜ
글쓴이 정수리 작성시각 2016/09/09 13:05:24
댓글 : 11 추천 : 0 스크랩 : 0 조회수 : 13820   RSS

ajax를 통해 

 


	success:function(data){
                .
                .
                .

                output +='<tr>';
		output +='<td>변경일</td><td><input type="text" name="ch_date" class="sv_date"/></td>';
		output +='</tr>';


                 $('#hd_'+no+' .test').empty();
		 $('#hd_'+no+' .test').append(output);

 

데이터를 출력하고

 

위에 <input type="text" name="ch_date" class="sv_date"/>

 

이 부분에 data picker를 적용할려고 하는데;

 

적용이 안되네요 ㅜㅜ 계속 

$(...).datepicker 

undifined 라는 오류만 뜨네요 ㅜㅜ

 

$(document).on('click', '.sv_info', function() {
		$('.sv_date').datepicker({
			changeMonth: true,
			changeYear: true,
			nextText:'다음 달',
			prevText:'이전 달',
			dateFormat:'yy-mm-dd',
			dayNamesMin:['월', '화', '수', '목', '금', '토', '일'],
			monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
			monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
			gotoCurrent: true
		 });
	});

 

 

어느쪽을 수정해야 적용할수 있을까요 ㅜㅜ

 다음글 라라벨 ... (5)
 이전글 ajax 통해 게시판 데이터 불러오기 전까지 로딩 이미... (1)

댓글

뫄뫄잉뿌 / 2016/09/09 13:11:10 / 추천 0

ajax append 후 

$(this).datepicker({
            changeMonth: true,
            changeYear: true,
            nextText:'다음 달',
            prevText:'이전 달',
            dateFormat:'yy-mm-dd',
            dayNamesMin:['월', '화', '수', '목', '금', '토', '일'],
            monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
            monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
            gotoCurrent: true
         });

다시 호출한번 해보세요~ 저번에 저도 그일로 아마 뒤에 한번더 호출했던걸로 기억해요

정수리 / 2016/09/09 13:14:45 / 추천 0

@뫄뫄잉뿌;;

죄송하지만 다시 한번 호출하라는게 무슨말씀이실까요?;

제가 해본것은;;

페이지가 로딩된 후에 바로 적용되도록해놔서

지식이 딸리다보니 말씀해준것을 이해를 못하네요 ㅜ죄송합니다,

배강민 / 2016/09/09 13:27:36 / 추천 0

그려내는 부분의 class는 sv_date

datepicker에서 액션을 주는 class 대상은 sv_info

정수리 / 2016/09/09 13:32:58 / 추천 0

@배강민

무슨 말씀이실까요??

이해가 안되서요;;

on('click', 'sv_info' function(){

 

의 경우 class가 .sv_info인 것을 클릭하면

$('.sv_date').detepiker({

 

}}

class='sv_date' 인곳에 달력을 그려주는것 아닌가요?

 

제가 잘못이해한건가요?

$('.sv_date').datepicker({

}) 

이렇게 해줘도 에러가 뜨는데;;

 

kaido / 2016/09/09 13:37:35 / 추천 0

append 로 엘레멘트를 추가하고 클릭이벤트를 사용하면 바로 적용될거라 생각 되지만, 적용이 안됩니다.

이는 흡사 클릭이벤트를 사용하겠다고 선언 하지 않고 사용하는 거와 같습니다.

[왜요? 라고 하신다면 직접 찾아 봐주세요. ]

 

그래서 append가 끝나고 재 호출을 한번 더 하라는 것입니다.

 

그리고 배강민님 말씀처럼 select 타겟도 잘못 되셨네요.

 

정수리 / 2016/09/09 13:45:31 / 추천 0

@kaido

예전에도 ajax호출 후에 클릭이벤트가 되지 않아 on메서드사용하여 

해결한적은 있습니다.

밑에처럼 준것에서도 select 타켓이 잘못된건가요?

$(document).on('click''.sv_info'function() {
        $('.sv_date').datepicker({
            changeMonth: true,
            changeYear: true,
            nextText:'다음 달',
            prevText:'이전 달',
            dateFormat:'yy-mm-dd',
            dayNamesMin:['월''화''수''목''금''토''일'],
            monthNamesShort:['1''2''3''4''5''6''7''8''9''10''11''12'],
            monthNames:[
정수리 / 2016/09/09 14:05:49 / 추천 0

해결을못하니 답답하네요 참 제가 멍청한게 죄이지만

var test = function(data){
	$(this).datepicker({
			changeMonth: true,
			changeYear: true,
			nextText:'다음 달',
			prevText:'이전 달',
			dateFormat:'yy-mm-dd',
			dayNamesMin:['월', '화', '수', '목', '금', '토', '일'],
			monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
			monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
			gotoCurrent: true
		 });
}


                                                $('#hd_'+no+' .test').append(output);
						var t= $('.sv_date');
						test(t);

이렇게 append 이후에 호출을 하였는데도

$(this).datepicker에서 

$(...).datepicker is not a function이라고만 뜨네요 참

 

정수리 / 2016/09/09 14:13:19 / 추천 0

var t값을 console.log(data[0])를 통해 확인해 보니

<input class="sv_date" type="text" name="ch_date">

이렇게나오는걸 확인했네요

저기 class값만가져오면 될것 같은데;

가져오는 방법이 있을까요?

배강민 / 2016/09/09 14:13:57 / 추천 0

sv_info 라는 달력띄우는 버튼이 따로 있는거라면 제 답변은 무시하셔도 되겠고요.

DOM을 그려내기전에 이벤트를 먹이는 시간차일 수도 있겠네요.

정수리 / 2016/09/09 14:23:45 / 추천 0

@배강민 

실수였네요,,,뷰페이지에 

<script src="<?php echo base_url();?>js/jquery-3.1.0.min.js"></script>
<script src="<?php echo base_url();?>js/jquery_ui_1.12.0/jquery-ui.js"></script>
<link rel="stylesheet" href="<?php echo base_url();?>js/jquery_ui_1.12.0/jquery-ui.css">

이걸 넣어준다는걸 깜박했네요 ㅜㅜ...

그런데 문제는 처음에 input 박스클릭했을때는 안나오는데 다른데를 클릭하고나서 다시 input box를 클릭하면 그때 나오는데;;

어느곳을 수정해야되죠;

정수리 / 2016/09/09 14:39:01 / 추천 0
해결하였습니다 datepicker를 함수로 만들어서 호출하니 아주 잘나오네요 답변 달아주신 분들 모두 감사합니다^^