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 は、検索条件のフィルタリングに使用されるフォームでサーバーに戻されます。ユーザーが実際に日付ピッカーを使用して日付を呼び出して選択しない場合'yyyy/mm/dd'、デフォルト値の ではなく、今日の今日の形式の値がフォームに送信されます"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 に答える