2012-10-15 3 views
0

날짜 값에 CJuiDatePicker 입력 필드를 사용하고 있습니다. 사용자가 입력 한 후에 빈 칸으로 설정해야합니다. JS 루틴에서 다음 옵션을 모두 사용했지만 아무 것도 작동하지 않는 것 같습니다. 그것의 이상한 나는 날짜 필드에서 값을 선택할 수 있지만 그것을 비워 두지 않습니다. 후속 입력에 날짜 필드가 필요하므로 숨길 수 없습니다.Yii : CJuiDatePicker 필드 값이 JS를 사용하여 null로 설정되지 않았습니다.

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model'=>$model, 
'attribute'=>'history_date', 
'options'=>array('changeMonth'=>'true','changeYear'=>'true','yearRange'=>'-70:+0'),    
)); 

모든 팁 ... 다음 CJuiDatePicker를 생성하는 내 코드는

$('#dateFieldId').val(''); 
$('#dateFieldId').val(""); 
$('#dateFieldId').val(null); 
$('#dateFieldId').val()=null; 

다음은?

미리 감사드립니다.

감사

파이

+0

변경 후 입력 값을 경고 할 수 있지만 ""로 설정하지 않았습니까? –

+0

예, 사용자가 입력했지만 재설정하지 않은 값은 경고 할 수 있습니다. – FaisalKhan

+0

당신은 당신의 JS를 처리하는 데 사용 게시 할 수 –

답변

0

이 작동하지 왜 내가 볼 수없는 이유는 무엇입니까?

<script> 
    $(function(){ 
     $("#dateFieldId").change(function(){ 
      $(this).val(""); 
     }); 
    }); 
</script> 

입력을 삭제 한 후에 그래픽 날짜 선택 도구에서 날짜 선택이 설정 될 수 있습니다.

또는 datepicker API에는 콜백 함수가 있습니다. Check out the documentation, after_select 또는 콜백 함수를 사용할 수 있어야합니다.

+0

예 이상한. 그건 그렇고, 당신이 제안한 것은 사용자가 데이터를 입력하는 것을 허용하지 않을 것이고, 사용자가 날짜 필드를 떠날 때 날짜는 곧 null로 설정됩니다. ( – FaisalKhan

+0

어딘가에 온라인 예제가 있습니까, 아니면 –

+0

아니, 아직 온라인이 아니지만, jsFiddle도 나에게 새로운 것이고, 나 자신을 닦아서 다시 돌아 오게 할 것이다 .... 당신의 신속한 답변을 많이 주셔서 감사합니다 .... 안부 ... – FaisalKhan

0

주석에서 언급했듯이 요소를 동적으로 추가하고있었습니다. jQuery 이벤트 핸들러 (예 : .change())는 동적으로 추가 된 이벤트에 첨부되지 않습니다.

on() and delegated events을 사용해야합니다. 페이지의 영구 요소를 선택하십시오 - $('body')은 일반적으로 작동해야하지만 성능은 현명합니다. 양식을 감싸는 래퍼를 선택하는 것이 가장 좋습니다. parentSelector가 입력 요소보다 DOM에 뭔가 더 높다

$('<parentSelector>').on('change', '#calendarSelector', function() { 
    $(this).val() = ''; 
}) 

, 페이지로드에 존재하는 요소, 어쩌면 양식 ID : 사용자의 입력 항목의

, 당신은 뭔가를해야합니다 또는 뭔가.

+0

입력 해 주셔서 감사합니다. 여기서 문제는 사용자가 Add 단추를 누른 후 NULL로 재설정하려는 Body의 기존 항목을 재설정하는 것입니다. Add 액션에서 dataField의 값을 가져 와서 동적으로 새 아이템을 만들어 Body에 추가합니다. 에스키모의 대답에 대한 나의 마지막 코멘트를 참고하면, 나는 왜 동적 인 내용을 추가하기 전에 그것을 만들었는지 dataField를 재설정하지 않을 것이라고 혼란 스럽다. 동적 콘텐츠로 이벤트를 처리 할 때마다 필자가 지적한 바가 분명 도움이 될 것입니다. Regards, Faisal – FaisalKhan

+0

@FaisalKhan 덧글의 소리에서, 당신이 추가하고있는 DOM에'# dateFieldId'가있는 것처럼 들렸습니다. 만약 그렇다면, 그것은 핸들러를 가지지 않을 새로운 요소입니다. 올바르지 않은 경우 동적으로 (예 : 기본 페이지가로드 된 후 (예 : 자바 스크립트 함수를 통해)) 날짜 필드가 추가 된 경우에는 적용되지 않습니다. – ernie

관련 문제