Member 13289364 Ответов: 1

Скрыть ввод по умолчанию до тех пор, пока он не будет запущен


У меня есть 2 даты, дата начала и дата окончания.
Если конечная дата равна 1/1/2018, то начальный день по умолчанию всегда на 1 "день" больше конечного дня, т. е. в данном случае 1/2/2017. Я пытаюсь установить ввод в качестве даты начала, чтобы быть невидимым, но автоматически +1 день даты окончания. Однако пользователь может изменить его на любую дату, которую он хочет. Я пытаюсь скрыть поле, если только не было выбрано значение.

Что я уже пробовал:

Я установил метки для даты. Я попытался установить type ="hidden", но на самом деле я не пытаюсь скрыть поле, а только скрываю ввод до тех пор, пока оно не будет выбрано. Пользователь по-прежнему должен иметь возможность запускать страницу без выбора даты начала.

<label3>Start of Lease </label3> <input  id="startDate"  type="date" ><br/>
            </br>
            <label3>End of Lease</label3>  <input id="endDate" onchange="PopulateRentPaymentDates()" type="date" > <br/>
            </td>


Здесь я настраиваю его так, чтобы, если пользователь не выбрал дату, он принимал конечную дату + 1.
if (document.getElementById("startDate"))
        stDate = document.getElementById("startDate").value;
    else stDate = document.getElementById("startDate").value = getCurrentDay(sDate);


Это мой расчет на дату начала.
var endDate = document.getElementById("endDate").value;
    if (endDate){
    var etDate = new Date(endDate);
    var eDay = etDate.getUTCDate()+1;
    var eMonth = etDate.getUTCMonth()+1;
    var eYear = etDate.getUTCFullYear()-1;
    var sDate = eYear + "-" + eMonth + "-" + eDay;


            if (stDate == null)
        {
            sDate.setMonth(sDate.getDay() - parseInt(paymentDays));
        }


Это выход, который я пытаюсь скрыть. Любая помощь будет очень признательна. Спасибо.
if (document.getElementById("startDate"))
            document.getElementById("startDate").value = getCurrentDay(sDate);

F-ES Sitecore

Всякий раз, когда вам нужно прочитать дату начала, если поле пусто, то вычислите дату начала от даты окончания в этой точке. Нет необходимости пытаться обновить вещи, когда дата окончания меняется.

Member 13289364

Да. Именно этим я сейчас и занимаюсь. Когда поле пусто, оно вычисляет его, но я пытаюсь скрыть результат.

F-ES Sitecore

Что плохого в том, как вы делаете это сейчас? Это лучший способ справиться с ним.

Member 13289364

Это связано с результатами проекта. Если пользователь не знает дату начала и все еще печатает отчет, а платежи обычно всегда происходят за день до даты окончания, но поскольку мы не знаем, когда была фактическая дата, мы делаем предположение, поэтому мы не хотим отображать дату, если она не была выбрана вручную. Но если они вводят дату начала, то мы можем использовать ее в качестве входных данных.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Да .... "ИИ" может быть сложным.

Иногда предоставление пользователю некоторых "переключателей" для передачи своих "намерений" (вместо того, чтобы вы "угадывали") может значительно облегчить жизнь всем, включая пользователя (когда он знает свои варианты).


Member 13289364

Есть ли способ каким-либо образом скрыть поле?

Gerry Schmitz

Если бы я "возился" с HTML, я бы сделал это на заднем конце, а просто не "генерировал" поле.

"Клиентский" код проверки для веб-приложений - это плохая шутка (IMO).