#javascript #php #jquery #html
#javascript #php #jquery #HTML
Вопрос:
У меня есть 2 действительно очень больших поля выбора, которые, я думаю, не лучший подход для выбора времени. Я должен запретить пользователю выбирать время начала меньше времени окончания. Я имею в виду часы работы, в течение которых открыт мой отель. Вот что я сделал с помощью select.
<div class="weekends">
<label for="">Weekdays</label>
<select class="startTimeWeekDays" name="" id="">
<option value="1am" <?php if( '1am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>1am</option>
<option value="2am" <?php if( '2am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>2am</option>
<option value="3am" <?php if( '3am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>3am</option>
<option value="4am" <?php if( '4am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>4am</option>
<option value="5am" <?php if( '5am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>5am</option>
<option value="6am" <?php if( '6am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>6am</option>
<option value="7am" <?php if( '7am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>7am</option>
<option value="8am" <?php if( '8am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>8am</option>
<option value="9am" <?php if( '9am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>9am</option>
<option value="10am" <?php if( '10am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>10am</option>
<option value="11am" <?php if( '11am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>11am</option>
<option value="12am" <?php if( '12am'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>12am</option>
<option value="1pm" <?php if( '1pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>1pm</option>
<option value="2pm" <?php if( '2pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>2pm</option>
<option value="3pm" <?php if( '3pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>3pm</option>
<option value="4pm" <?php if( '4pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>4pm</option>
<option value="5pm" <?php if( '5pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>5pm</option>
<option value="6pm" <?php if( '6pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>6pm</option>
<option value="7pm" <?php if( '7pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>7pm</option>
<option value="8pm" <?php if( '8pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>8pm</option>
<option value="9pm" <?php if( '9pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>9pm</option>
<option value="10pm" <?php if( '10pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>10pm</option>
<option value="11pm" <?php if( '11pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>11pm</option>
<option value="12pm" <?php if( '12pm'== $this->user->getConcept()->getWeekdayStartTime()): ?>selected<?php endif ?>>12pm</option>
</select>
<select class="endTimeWeekDays" name="" id="">
<option value="1am" <?php if( '1am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>1am</option>
<option value="2am" <?php if( '2am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>2am</option>
<option value="3am" <?php if( '3am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>3am</option>
<option value="4am" <?php if( '4am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>4am</option>
<option value="5am" <?php if( '5am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>5am</option>
<option value="6am" <?php if( '6am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>6am</option>
<option value="7am" <?php if( '7am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>7am</option>
<option value="8am" <?php if( '8am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>8am</option>
<option value="9am" <?php if( '9am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>9am</option>
<option value="10am" <?php if( '10am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>10am</option>
<option value="11am" <?php if( '11am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>11am</option>
<option value="12am" <?php if( '12am' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>12am</option>
<option value="1pm" <?php if( '1pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>1pm</option>
<option value="2pm" <?php if( '2pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>2pm</option>
<option value="3pm" <?php if( '3pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>3pm</option>
<option value="4pm" <?php if( '4pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>4pm</option>
<option value="5pm" <?php if( '5pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>5pm</option>
<option value="6pm" <?php if( '6pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>6pm</option>
<option value="7pm" <?php if( '7pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>7pm</option>
<option value="8pm" <?php if( '8pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>8pm</option>
<option value="9pm" <?php if( '9pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>9pm</option>
<option value="10pm" <?php if( '10pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>10pm</option>
<option value="11pm" <?php if( '11pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>11pm</option>
<option value="12pm" <?php if( '12pm' == $this->user->getConcept()->getWeekdayEndTime()): ?>selected<?php endif ?>>12pm</option>
</select>
</div>
Теперь я должен ограничить пользователя в выборе времени окончания, превышающего время начала, допустим, пользователь выбирает 10 утра, затем должен выбрать больше 10 утра или в терминах вечера, как в режиме реального времени. используя jquery.
ВОТ ЧТО ВЫ МОЖЕТЕ УВИДЕТЬ В СКРИПТЕ
Комментарии:
1. Вам нужно узнать о циклах, чтобы избежать повторения кода.
2. Вам нужно использовать
for ($i = 1; $i <=12; $i )
в функции, чтобы получить параметры. Это не читаемый код.3. Получаете ли вы временную метку в
getWeekdayEndTime()
? Если В любом случае вы получаете временную метку, то будет легко выяснить, какая из них больше.4. У меня есть только am и pm
Ответ №1:
$(function(){
$("#checkin").on("change",function(){
var chkIn = getValue($(this).val()), chkout = getValue($("#checkout").val())
if(chkIn>=chkout) {
alert("Checkin should be lesser than checkout");
resetSelectedOptions();
}
})
$("#checkout").on("change",function(){
var chkout = getValue($(this).val()), chkIn = getValue($("#checkin").val())
if(chkIn>=chkout) {
alert("Checkin should be lesser than checkout");
resetSelectedOptions()
}
})
})
function getValue(str){
return str.indexOf("am")>-1?parseInt(str):parseInt(str) 12;
}
function resetSelectedOptions(){
$("#checkout").val("1am");
$("#checkin").val("1am")
}
Ответ №2:
Чтобы отключить время окончания option
с помощью jQuery, вы можете использовать это:
$(".startTimeWeekDays").change(function(){
var startTime = $(this).val(); // Get the starting time
// Reset disabled status
$(".endTimeWeekDays option").prop("disabled", false);
// Disable the end time options equal or less than selected time
$(".endTimeWeekDays option[value='" startTime "']").next().prevAll().prop("disabled", true);
});
Комментарии:
1. Я хочу проверить, а не отключить
2. @SudarshanKalebere Вы написали это: Теперь я должен ограничить пользователя в выборе времени окончания, превышающего время начала
3. @SudarshanKalebere не могли бы вы объяснить «validate», пожалуйста? Быстрое сообщение о том, что «Время окончания должно быть больше, чем {startedTime}»?
4. Да, пожалуйста, проверьте этот подход здесь jsfiddle.net/Lpyk1fzu когда я выбираю 10 утра, я согласен, что он отключается все время ниже 10 утра, но опять же, если я выберу 2 часа ночи, то все равно он отключается только до 10 утра, пожалуйста, проверьте jsfiddle.net/Lpyk1fzu
5. Да, извините, я сделал это в спешке. Обновил его, вам просто нужно было удалить отключенное свойство раньше.