0

我正在使用pickadate.js具有以下初始化的日期选择器:

$start_cal_input = $("#start-date-picker").pickadate({
        min: true,
        max: 30,
        editable: true,
        clear: false,
        formatSubmit: 'yyyy/mm/dd',
        hiddenName: true,
        onSet: function(e) {

        },
        onClose: function() {
            return setTimeout(function() {
                return $("#start-date-picker").blur();
            }, 200);
        },
    onStart: function() {
    }
});

和 HTML:

<input id="start-date-picker" name="start-date-picker" class="form-control" type="text" value="Start date">

HTML 以表单形式发送回服务器,用于过滤搜索条件。如果用户实际上并没有使用 datepicker 调用和选择日期,则'yyyy/mm/dd'格式中的 today's today 值将被发送到表单,而不是默认值"Start date". 如果它实际上没有被调用,我不想按日期过滤我的搜索结果,但我无法区分用户选择今天的日期和用户将日期留空并自动返回今天的日期。

如何确定是否调用了日期选择器?

4

1 回答 1

1

当用户没有选择任何日期时,为什么需要发送 'yyyy/mm/dd' 格式的日期?

您可以只使用一个简单的if else语句来知道是否选择了日期。一个示例如下所示

if(date is empty or is a default value) {
    do some thing
}else {
    do some other thing
}

这样你就可以知道用户是否选择了日期。最重要的是,除非您在表单中设置标志或值,否则服务器将无法检查 javascript 是否已执行。我想说的是,有一些方法可以做到这一点,你只需要知道它:)

编辑

隐藏这个额外的输入类型。

<input type="hidden" name="isdateselected" id="myDateFlag" value="false" />

onSet: function(context) {
    document.getElementById("myDateFlag").value="true";
}

现在您可以使用该isdateselected参数来检查是否选择了日期。如果它被选中,true否则它的false

于 2014-08-04T16:42:15.737 回答