2012-10-15 20 views
0

我正在使用CJuiDatePicker輸入字段作爲日期值。用戶輸入後,我需要將其設置爲空白。我在JS例程中使用了以下所有選項,但似乎沒有任何效果。奇怪的是,我可以從日期字段中選擇值,但不能將其設置爲空白。由於後續輸入需要日期字段,因此我無法隱藏它。Yii:CJuiDatePicker字段值未使用JS設置爲null

$('#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

是的,我可以提醒用戶輸入的值,但不能重置它。 – FaisalKhan

+0

您可以發佈您的JS用來處理該 –

回答

0

我不明白爲什麼這是行不通的?

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

在清除輸入後,可能會在圖形日期選擇器上設置日期選擇。

或者,datepicker API具有回調函數。 Check out the documentation,應該有一個after_select或回調函數可用

+0

是的很奇怪。順便說一下,你建議不會讓用戶輸入數據,日期設置爲空即將離開日期字段........ :( – FaisalKhan

+0

你有一個例子在網上的例子,或者你可以彈出它在jsfiddle –

+0

沒有它不在線,但jsFiddle對我來說也是新的,讓我刷自己在那裏,並得到回報....非常感謝您的及時答覆....問候... – FaisalKhan

0

正如你在評論中提到的,你是動態添加元素。 jQuery事件處理程序(例如.change())不會附加到動態添加的事件。您需要使用on() and delegated events。在頁面上選擇一個永久元素 - $('body')通常應該可以工作,但性能方面,最好是選擇一些更低的元素,也許是表單上的包裝器?

您的輸入項,你需要這樣的:

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

凡parentSelector是在DOM比輸入元素的東西更高,並且位於頁面加載的元素,也許形式ID或者其他的東西。

+0

感謝您的輸入。這裏的問題是在用戶按下添加按鈕後,重新設置正文中我想要重置爲NULL的現有項目。在添加操作上,我爲dataField獲取值並動態創建一個新項目並將其添加到Body。關於我對Eskimo答案的最後一點評論,我仍然感到困惑,爲什麼它不會重置dataField,如果我在添加動態內容之前創建它,並且只有在之後添加動態內容時纔會重置dataField,對此有何看法?無論何時我使用動態內容處理事件,您指出的內容肯定會對我有所幫助。問候,費薩爾 – FaisalKhan

+0

@FaisalKhan從你的評論的聲音,它聽起來就像'#dateFieldId'在你添加的DOM中,如果是的話,這是一個新的元素,將不會有一個處理程序。如果我不正確,關於日期字段是動態添加的(例如,在加載主頁之後,即通過javascript函數),則這不適用。 – ernie

相關問題