我正在使用CJuiDatePicker输入字段作为日期值。用户输入后,我需要将其设置为空白。我在JS例程中使用了以下所有选项,但似乎没有任何效果。奇怪的是,我可以从日期字段中选择值,但不能将其设置为空白。我无法隐藏它,因为后续输入需要日期字段。
$('#dateFieldId').val('');
$('#dateFieldId').val("");
$('#dateFieldId').val(null);
$('#dateFieldId').val()=null;
以下是我生成CJuiDatePicker的代码片段:
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model'=>$model,
'attribute'=>'history_date',
'options'=>array('changeMonth'=>'true','changeYear'=>'true','yearRange'=>'-70:+0'),
));
任何提示....?
提前致谢。
此致
费萨尔
答案 0 :(得分:0)
我不明白为什么这不起作用?
<script>
$(function(){
$("#dateFieldId").change(function(){
$(this).val("");
});
});
</script>
清除输入后,可能正在设置图形日期选择器上的日期选择。
或者,datepicker API具有回调函数。 Check out the documentation,应该有一个after_select或回调函数
答案 1 :(得分:0)
正如您在评论中提到的,您正在动态添加元素。 jQuery事件处理程序(例如.change()
)不会附加到动态添加的事件。
您需要使用on() and delegated events。在页面上选择一个永久元素 - $('body')
通常应该有效,但性能明智,最好选择更深层次的东西,也许是表单周围的包装?
对于您的输入项目,您需要以下内容:
$('<parentSelector>').on('change', '#calendarSelector', function() {
$(this).val() = '';
})
其中parentSelector在DOM中比输入元素更高,并且在页面加载时存在元素,可能是表单ID或其他内容。