jQuery日期选择器可以';得不到val()

jQuery日期选择器可以';得不到val(),jquery,jquery-ui,Jquery,Jquery Ui,我对jQueryUIDatePicker感到困惑。我有以下功能: $(".text-date").datepicker({ changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd" }); $("#regdatum input").change(function() { alert('Regdatum from: '+$("#filter-regdatum-from-value").val());

我对jQueryUIDatePicker感到困惑。我有以下功能:

$(".text-date").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "yy-mm-dd"
}); 

$("#regdatum input").change(function() {
    alert('Regdatum from: '+$("#filter-regdatum-from-value").val());
    alert('Regdatum to: '+$("#filter-regdatum-to-value").val());        
    if (($("#filter-regdatum-from-value").attr("value") != '') && ($("#filter-regdatum-to-value").attr("value") != ''))
    {
        generateDomainList();       
    }
});
它将单击事件附加到div
#regdatum
中的输入字段。此处显示的两个警报通过datepicker返回输入字段中选择的日期。当这两个字段有值时,它需要执行函数
generateDomainList()
。在此函数中,我尝试使用上述方法获取相同输入字段的值:

$("#filter-regdatum-from-value").val()

但无论我在此时做什么,它都会在我的警报中返回“未定义”(不是字符串)。对我来说,这似乎不合逻辑,有人能告诉我为什么会出现这种情况,或者如何解决它吗?

如果不看完整的代码,很难找到问题所在。但这可能是由函数中的可变访问级别引起的。尝试以下修改,它可能会工作

var from_val="";
var to_val="";

$("#regdatum input").change(function() {
    from_val=$("#filter-regdatum-from-value").val();
    to_val=$("#filter-regdatum-to-value").val();        
    if ((from_val != undefined) && (to_val != undefined))
    {
        generateDomainList();       
    }
});

function generateDomainList()
{
   alert(from_val);
   alert(to_val);
}
这里请注意,在事件处理程序之前声明变量很重要


或者可能还有另一个原因,即相同的
id
选择器的两个实例。

您是否也可以为
regdatum
输入包含HTML源代码?在获取
val()
时,选择器语法似乎不正确。奇怪的是,为什么在if语句中使用.attr(“value”)而不是.val()。OK,sloppy。这是测试的结果。发现两者都给出了相同的结果。输入的HTML源(得到了4个em所有不同ID调用datepicker的相同类)@tvgemert:Hmm.:(代码对我有效。我通过
alert(),而不是
undefined`,正确地获得了值。