有一个包含输入的DIV:
这是布局:
<div class="input-daterange input-group afc" id="datepicker-common-table">
<input type="text" class="input-sm form-control" name="start" placeholder="Начальная дата">
<span class="input-group-addon"> - </span>
<input type="text" class="input-sm form-control" name="end" placeholder="Конечная дата">
</div>
以下是尝试在安装后获取值的脚本:
$(document).on('change', "input[name='start']", function()
{
$(document).on('change', "input[name='end']", function()
{
var startVal = $("#datepicker-common-table > input:text").val();
var endVal = $("#datepicker-common-table > input:text").val();
console.log( startVal + " - " + endVal );
});
});
结果,在控制台中获得以下输出:
答案 0 :(得分:2)
尝试使用:
$(document).on('change', "input[name='start'],input[name='end']", function() {
var startVal = $("#datepicker-common-table > input[name='start']").val();
var endVal = $("#datepicker-common-table > input[name='end']").val();
console.log( startVal + " - " + endVal );
});
由于您根据评论使用了Bootstrap datepicker,因此您需要使用 changeDate() 事件来跟踪日期的更改时间:
$("input[name='start'],input[name='end']").on('changeDate', function() {
var startVal = $("#datepicker-common-table > input[name='start']").val();
var endVal = $("#datepicker-common-table > input[name='end']").val();
console.log( startVal + " - " + endVal );
});
答案 1 :(得分:2)
这是您需要的,您需要使用keyup
事件:
$(document).ready(function(){
$('#datepicker-common-table input[type="text"]').on('keyup',function(){
var startVal = $('#datepicker-common-table input[name="start"]').val();
var endVal = $('#datepicker-common-table input[name="end"]').val();
alert(startVal);
})
});
答案 2 :(得分:1)
请记住,提供的回调是异步的,您不能保证您可以立即访问这些值。您可以将值推送到队列中,如果您知道完成可以轮询的任务所需的最小长度,则轮询它。
这将每秒轮询对象,在to属性上查找非空值,一旦找到它,它就会停止,所以如果你需要连续观看,那么它将需要一些调整。
演示:Fiddle
var inputValues = {
start: '',
end: ''
}
$(document).on('keyup', function() {
var start = $(document).find("input[name='start']").val();
var end = $(document).find("input[name='end']").val();
inputValues.start = start;
inputValues.end = end;
});
var interval;
interval = setInterval(function() {
var fullString;
if(inputValues.start != '' && inputValues.end != '') {
console.log("Start: " + inputValues.start + " End: " + inputValues.end);
clearInterval(interval);
}
}, 1000);
答案 3 :(得分:1)
查看截图,您需要使用changeDate
事件及其提供的数据:
$("input[name='start']").datepicker({
}).on("changeDate", function(e) {
var selectedDate = e.date; // Get the date value from the event
console.log("Date Changed", e.date);
});
因此,对于您的用例(您只想记录选择两者时的日期):
var dates = { start: null, end: null };
$(".input-sm").datepicker({
format: "dd-mm-yyyy",
todayBtn: "linked",
language: "en",
todayHighlight: true,
autoClose: true
}).on("changeDate", function(e) {
dates[this.name] = e.date;
if(dates.start && dates.end) {
console.log("Both dates selected");
console.log(dates.start);
console.log(dates.end);
}
});