如何确定是否在表单发布上调用了一个datepicker

时间:2014-08-04 16:32:36

标签: javascript pickadate

我使用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以表单形式发回服务器,用于过滤搜索条件。如果用户实际上没有调用并选择带有日期选择器的日期,则会以'yyyy/mm/dd'格式的今天今天的值发送到表单,而不是默认值"Start date"。如果它实际上没有被调用,我不希望按日期过滤我的搜索结果,但是我无法区分用户选择今天的日期和用户将日期留空并且自动返回今天的日期。

如何在表单上确定是否调用了日期选择器?

1 个答案:

答案 0 :(得分: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