Yii:使用JS,CJuiDatePicker字段值未设置为null

时间:2012-10-15 17:16:39

标签: jquery yii

我正在使用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'),             
));

任何提示....?

提前致谢。

此致

费萨尔

2 个答案:

答案 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或其他内容。