2014-09-16 4 views
2

У меня возникла проблема с отключением даты на datepicker после выбора любой даты.Отключить дату после выбора в datepicker

My HTML Markup:

Day 1 <input type="text" id="datepicker1" name="datepicker1" /> <br/> 
Day 2 <input type="text" id="datepicker2" name="datepicker2" /> <br/> 
Day 3 <input type="text" id="datepicker3" name="datepicker3" /><br/> 
Day 4 <input type="text" id="datepicker4" name="datepicker4" /><br/> 
Day 5 <input type="text" id="datepicker5" name="datepicker5" /><br/> 
Day 6 <input type="text" id="datepicker6" name="datepicker6" /><br/> 
Day 7 <input type="text" id="datepicker7" name="datepicker7" /><br/> 

JavaScript, который я использовал:

var dates = $("#datepicker1, #datepicker2, #datepicker3, #datepicker4, #datepicker5, #datepicker6, #datepicker7").datepicker({ 
    minDate: "0", 
    maxDate: "+2Y", 
    defaultDate: "+1w", 
    dateFormat: 'mm/dd/yy', 
    numberOfMonths: 1, 
    onSelect: function(date) { 
     for(var i = 0; i < dates.length; ++i) { 
      if(dates[i].id < this.id) 
       $(dates[i]).datepicker('option', 'maxDate', date); 
      else if(dates[i].id > this.id) 
       $(dates[i]).datepicker('option', 'minDate', date); 
     } 
    } 
}); 

My JsFiddle Demo

Я получил эту useful script на JsFiddle. Там дата отключить правильно после выбора 1 даты. Но я должен использовать это для 7 дней. Поэтому каждый поможет мне использовать этот полезный скрипт для меня в моем примере jsfiddle!

## Я хочу, чтобы дата была отключена после выбора. Он будет недоступен для выбора следующего.

+0

Я думаю, что я совершенно не понял ваши намерения с этим вопросом. Вы хотите, чтобы сама дата больше не была доступна в вашем datepicker, а не поле ввода, которое нужно отключить. Я удалю свой ответ. –

+0

Да ... Любая помощь для меня в вашем следующем ответе plz? –

+0

http://jsfiddle.net/SirDerpington/h3wGx/4/ там он работает porperly, но я не могу добавить 7 дате –

ответ

0

Здесь вы другой вариант, когда даты не доступны, когда он выбран в полях ввода, http://jsfiddle.net/tfqyakn2/6/

var datesMin = []; 
var dates = $("#datepicker1, #datepicker2, #datepicker3, #datepicker4, #datepicker5, #datepicker6, #datepicker7").datepicker({ 
minDate: "+0", 
maxDate: "+2Y", 
defaultDate: "+1w", 
dateFormat: 'mm/dd/yy', 
numberOfMonths: 1, 
onSelect: function(date) {    
    datesMin.push(new Date($(this).val()));   
}, 
beforeShow: function() {   
    $(this).datepicker("option", "minDate", maxi()); 
} 
}); 

function sortDates(a, b){ 
return a.getTime() - b.getTime(); 
} 

function maxi(){ 
var sorted = datesMin.sort(sortDates);  
var minDate; 
if(datesMin.length > 0){ 
minDate = sorted[sorted.length-1];  
} else { 
minDate = 0;  
} 
return minDate; 
} 
+0

http://s5.postimg.org/60cl5vxbb/freelancingcare_2014_09_17.jpg Посмотрите, Я могу добавить туда такую ​​же дату :( Я хочу, чтобы пользователь не мог добавить такую ​​же дату снова и снова Пожалуйста, посмотрите, что http://jsfiddle.net/SirDerpington/h3wGx/4/ jsfiddle там вы не можете выбрать тот же день. аналогичным образом в моем сценарии. –

+0

Ну, если у вас есть тот, который вы могли бы сделать сами, это было всего лишь одно добавление +1. Здесь оно обновляется и поднимает ответ ht tp: //jsfiddle.net/tfqyakn2/8/ –

+0

Wow great .. это работает ... –

0

Как я понял, вы хотите отключить дату, которую вы выбираете на поля даты, и эта дата не должна быть доступна для остальных полей ввода (datepickers).

Я сделал некоторые изменения в сценарий: http://jsfiddle.net/tfqyakn2/5/

Я считаю, что это ответ, который вы ищете.

var disabledDates = []; 

var dates = $("#datepicker1, #datepicker2, #datepicker3, #datepicker4, #datepicker5, #datepicker6, #datepicker7").datepicker({ 
    minDate: "0", 
    maxDate: "+2Y", 
    defaultDate: "+1w", 
    dateFormat: 'mm/dd/yy', 
    numberOfMonths: 1, 
    onSelect: function(date) {   
     disabledDates.push($(this).val());   
    }, 
    beforeShowDay: unavailable 
}); 

function unavailable(date) { 
    dateZero = ('0' + (date.getMonth()+1)).slice(-2) + '/' 
      + ('0' + date.getDate()).slice(-2) + '/' 
      + date.getFullYear();  
    if ($.inArray(dateZero, disabledDates) < 0) { 
     return [true,"","Available Date"]; 
    } else { 
     return [false,"","Not Available Date"]; 
    } 
} 
+0

спасибо за ваш добрый ответ. Там есть небольшая проблема. Надеюсь, вы поможете это исправить. Когда я выбираю будущую дату в День 1, тогда прошлая дата все еще доступна для выбора в День 2 или другое .. Также должно быть отключено .. Проверьте, что PLZ: http://s5.postimg.org/gjckv1zzb/ freelancingcare_2014_09_17.jpg –

+0

У меня есть обновленный jsfiddle для вас, http://jsfiddle.net/tfqyakn2/6/ –

+0

Я ценю вашу помощь для меня..plz проверить мой комментарий к вашему 2-му ответу. Я пишу его снова здесь » \t s5.postimg.org/60cl5vxbb/freelancingcare_2014_09_17.jpg Посмотрите, что у меня есть еще там, где я могу добавить такую ​​же дату :(Я хочу, чтобы пользователь не мог добавить такую ​​же дату снова и снова. jsfiddle.net/SirDerpington/h3wGx/4 jsfiddle там вы не можете выбрать тот же день. Я хочу, чтобы это было похоже в моем сценарии. " –

Смежные вопросы