我希望在下拉列表具有特定选定值时将日历设置为输入字段。
我遇到的问题是事件发生但脚本在点击发生多次之前没有执行,我尝试click
和focus
但结果相同!
这是我的代码
<select name="selectKey" id="selectKey">
<option value="1" >mail no</option>
<option value="2" > mail type</option>
<option value="3" selected="selected"> mail date</option>
<option value="4" >title</option>
</select>
<input type="text" name="srchTxt" id="srchTxt" value="">
这是js
$(document).ready(function() {
$('input[name=srchTxt]').bind('focus', function(event) {
// event.stopPropagation();
if ($("select[name='selectKey']").children(':selected').val() == 3) {
console.log('ysssssssssssssss');
$('input[name=srchTxt]').datepicker({
// showWeek: true,
firstDay: 1,
dateFormat: 'dd/mm/yy'
})
}
});
});
答案 0 :(得分:2)
只需将.datepicker('show')
添加到结尾
$(document).ready(function() {
$('input[name=srchTxt]').bind('focus', function(event) {
if ($("select[name='selectKey']").val() == 3) {
$('input[name=srchTxt]').datepicker({
firstDay: 1,
dateFormat: 'dd/mm/yy'
}).datepicker('show')
}
});
});
答案 1 :(得分:1)
那是因为第一次关注输入时datepicker
没有添加到它。为什么不使用更改事件?
$(document).ready(function() {
$('#selectKey').on('change', function(event) {
if (this.value == 3) {
$('#srchTxt').datepicker({
firstDay: 1,
dateFormat: 'dd/mm/yy'
})
}
}).change()
});