我正在创建一个 Zend 表单,我想在其中插入一个日期跨度。该表单使用 jQuery UI 库进行了增强,因此我有一个日期从和一个日期到字段,它们都是 datepicker 元素。这工作正常;这是 Zend_Form 的这一部分:
// Date range
$date = $this->getView()->date(time());
$this->addElement('DatePicker', 'userday_from', array(
'label' => 'Datum van',
'value' => $date,
'jQueryParams' => array(
'defaultDate' => $date,
'dateFormat' => $this->getView()->date()->getFormatJquery()
)
));
$this->addElement('DatePicker', 'userday_to', array(
'label' => 'Datum tot',
'value' => $date,
'jQueryParams' => array(
'defaultDate' => $date,
'dateFormat' => $this->getView()->date()->getFormatJquery()
)
));
当第一个日期更改时,我想更新第二个日期。jQuery datepicker 对此有一个 onSelect 事件。但是,我无法向 jQueryParams 添加函数回调:
$this->addElement('DatePicker', 'userday_from', array(
'label' => 'Datum van',
'value' => $date,
'jQueryParams' => array(
'defaultDate' => $date,
'dateFormat' => $this->getView()->date()->getFormatJquery(),
'onSelect' => "function(){ alert('test'); }" // ! is not working
)
));
因此,我尝试在之后添加这个 jQuery '选项',如下所示:
$this->getView()->jQuery()
->addOnload("
$('#userday_from').datepicker('option', 'onSelect', function(selectedDate){
alert('test');
});
");
另一方面,这在 document.ready() 函数中添加了新的 jQuery,在我的 datepicker 元素的初始化函数之前,因此也不起作用:
<script type="text/javascript">//<![CDATA[
$(document).ready(function() {
$('#userday_from').datepicker('option', 'onSelect', function(selectedDate){
alert('test');
});
$("#userday_from").datepicker({"defaultDate":"09-11-2012","dateFormat":"dd-mm-yy"});
$("#userday_to").datepicker({"defaultDate":"09-11-2012","dateFormat":"dd-mm-yy"});
});
//]]></script>
我不想覆盖 datePicker viewhelper 来破解这样的东西。这是将 2 个表单元素联系在一起的东西,因此将其添加到 Zend_Form init() 函数对我来说似乎是有效的。