我有一个按钮和一个文本框.出现按钮日期选择器弹出窗口的单击,用户从日历弹出窗口中选择日期,并在文本字段中填充所选日期.
现在,我希望在文本字段中填充结果时触发事件. Onchange事件对此不起作用,因为textfield onchange事件仅在失去焦点时才会触发.在我的情况下,它是从外部源更改.
因此,我想为按钮点击触发一个onSelect事件.但是事件再次没有被触发.
这是我的代码
<input type="text" class="textbox_small" name=""
value="" id="txt_node" disabled="disabled"
onchange="fnChangeTime();" />
<input type="button" name="" value=""
class="timePicker_button" id="lnk_hpd"
; style="background-image: url('images/Date_time_picker.gif'); width: 29px; height: 20px;"
onclick="" onselect="" "disabled"/></td>
$('#'+fnParseIDForJ('lnk_hpd')).click(function () {
NewCssCal('txt_node','ddmmyyyy','arrow',false, null, null, null, fnInterimSave, 'txt_node');
});
$('#lnk_hpd').datepicker({
onSelect:function(datesel){
alert("hello");
// alert("Selected date: " + dateText + "; input's current value: " + this.value);
// $(this).change();
}
});
这里没有触发任何事件.任何帮助,将不胜感激
解决方法:
1.在单击按钮上的文本框上打开日期选择器,因此您必须使用文本框的id,而不是按钮和方法$(‘#txt_node’).datepicker(‘show’);显示日期选择器.
2.如果触发了更改事件,则datepicker将保持打开状态,而不是关闭所以行$(‘#txt_node’).datepicker(‘hide’);
检查一下.
$('#txt_node').datepicker({
onSelect: function(datesel) {
$('#txt_node').trigger('change')
}
});
$('#lnk_hpd').click(function() {
$('#txt_node').datepicker('show');
})
$('#txt_node').change(
function(event) {
$('#SelectedDate').text("Selected date: " + this.value);
$('#txt_node').datepicker('hide'); // if youdon't hide datepicker will be kept open
})
<link href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<input type="text" class="textbox_small" name="" value="" id="txt_node" disabled="disabled" onchange="fnChangeTime();" />
<input type="button" name="" class="timePicker_button" id="lnk_hpd" ; onclick="" onselect="" "disabled" value='Open' />
<br/>
<br/>
<span id='SelectedDate'></span>