1

寻找一些使用 JQuery 的指针。

我有三个表单元素:

选择 - id:旅馆
输入 [文本] - id:日期
选择 - id:持续时间

我需要做的是,如果其中任何一个发生更改或模糊,则使函数运行,而且还要让脚本检查每个函数是否有一个值并将所有这三个值传递给脚本。

所以我需要填充三个变量:

var LodgeChoice = $('#lodge').val();
                var DateParse = $('#dates').datepicker('getDate');
                var DateChosen = DateParse.getFullYear() + '-' + (DateParse.getMonth() + 1) + '-' + DateParse.getDate();
                var Duration = $('#durationNights').val();

但我不能确定有人会以什么顺序填充表单变量。

4

1 回答 1

2
$("#lodge, #dates, #durationNights").on("blur change", function() {
    //get/process values here
});

如果您需要知道由于某种原因更改了哪个元素,您可以$(this)从事件处理函数内部参考

编辑:

回应您的评论:如果您还需要在继续之前确保所有三个都有一个值,那么您不必只有一个大的 if 语句。相反,您可以执行以下操作:

var fields = $("#lodge, #dates, #durationNights");
fields.on("blur change", function() {
    var valuesSet = true;
    fields.each(function() {
        if (!$(this).val()) { //inside a jQuery "each", "this" refers to the current item in the loop
            valuesSet = false;
            return false; //break out of the "each" loop
        }
    });
    if (valuesSet) {
        //process values
    }
});
于 2013-03-01T20:35:26.997 回答